楼主: whjxq
3503 7

MATLAB 可以算熵权值吗 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1001份资源

初中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
978 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
107 点
帖子
6
精华
0
在线时间
21 小时
注册时间
2009-3-28
最后登录
2011-5-12

楼主
whjxq 发表于 2009-11-26 20:26:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位朋友 不熟悉MATLAB  求救各位  怎么编程算权重
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab MATLAB

沙发
conger1 发表于 2009-11-26 20:33:20
只有不会算的人,哪有不会算得软件?

藤椅
Crsky7 发表于 2009-11-27 00:39:52
应该是可以的。

板凳
whcy1989 发表于 2009-11-30 16:09:15
同问。。 我纠结很久了。。

报纸
shengdong1979 发表于 2009-12-1 01:43:44
真的难为这位兄弟了
勤奋、积极、严谨

地板
perfect-秋 发表于 2010-10-18 14:47:41
楼主解决了没哈?

7
xpanda 发表于 2010-10-18 15:11:16
2# conger1
哈哈 这话经典

8
matlab-007 发表于 2014-12-14 13:09:20
根据熵权法理论,编写Matlab程序如下:(新建一个M-File)

function weights = EntropyWeight(R)
%% 熵权法求指标权重,R为输入矩阵,返回权重向量weights

[rows,cols]=size(R); % 输入矩阵的大小,rows为对象个数,cols为指标个数
k=1/log(rows);        % 求k

f=zeros(rows,cols);   % 初始化fij
sumBycols=sum(R,1);   % 输入矩阵的每一列之和(结果为一个1*cols的行向量)
% 计算fij
for i=1:rows
  for j=1:cols
      f(i,j)=R(i,j)./sumBycols(1,j);
  end
end

lnfij=zeros(rows,cols); % 初始化lnfij
% 计算lnfij
for i=1:rows
  for j=1:cols
      if f(i,j)==0
          lnfij(i,j)=0;
      else
          lnfij(i,j)=log(f(i,j));
      end
  end
end

Hj=-k*(sum(f.*lnfij,1)); % 计算熵值Hj
weights=(1-Hj)/(cols-sum(Hj));
end

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 23:21