谢凌风 发表于 2012-8-12 21:44

好的,有用。

X.w.j.拽. 发表于 2012-8-13 17:41

{:soso_e100:}

沧海浮萍 发表于 2012-9-5 16:56

不过看了大家的评论,怎么觉得代码还是有问题呢

zhenc 发表于 2012-9-6 20:15

{:3_59:}{:3_59:}{:3_59:}

加拿大 发表于 2012-9-7 19:49

{:3_41:}{:3_41:}

hock 发表于 2012-12-8 13:26

也是来找资源的

1667156702 发表于 2013-2-5 23:15

请问有复数怎么解决?

0且行 发表于 2013-5-19 13:42

模糊决策方法:function fuzzy4
clear,clc
m=input('请输入目标数:');
n=input('请输入决策方案数:');
a=zeros(m,n);
while 1
b=input('请输入特征量矩阵:');
=size(b);
 if s==m&t==n, break, end
  disp('输入错误!请核查!!')
end
r=zeros(m,n);
bmax=zeros(m,1);
bmin=zeros(m,1);
disp('请依次选择目标的类型:1-越大越优;0-越小越优:')
for k=1:m
disp('目标:'),disp(k)
o(k)=input('类型:');
if o(k)==1
   bmax(k)=max(b(k,:));  %求特征量矩阵第一行的最大元
   r(k,:)=b(k,:)/bmax(k);
else if o(k)==0
   bmin(k)=min(b(k,:));   %求特征量矩阵第一行的最小元
   r(k,:)=(b(k,:)/bmin(k)).^ (-1);
else
   error('选择错误!')
end
end
end
disp('隶属度矩阵为:'),r
disp('系统的优向量为:')
g=ones(m,1)
disp('系统的次向量为:')
for k=1:m
c(k)=min(r(k,:));
end
b=c(:)
w=input('请输入评价指标的权重向量:')
p=input('请选择距离:1-为海明距离;2-欧氏距离:')
x=zeros(1,n);  %初始化
y=zeros(1,n);
for j=1:n
 for i=1:m
  x(j)=x(j)+(w(i)*abs(r(i,j)-g(i)))^ p;
   y(j)=y(j)+(w(i)*abs(r(i,j)-b(i)))^ p;
end
  z(j)=1+(x(j)/y(j)) (2/p);
v(j)=1/z(j);
end
disp(v(:)')
u=sort(v)  %将向量v的元素按递增排序
disp('方案的优先顺序为:')
for k=n:-1:1  %将向量u的元素从大到小
for l=1:n  %逐个与向量v的每个元素比较,
  if u(k)==v(l)  %依次找出u中每个元素在V中的位置
   disp(l)  %并输出,即为方案的优先顺序
end
end
end

wangkai2013 发表于 2013-7-14 15:06

%层次分析法的matlab程序

wangkai2013 发表于 2013-7-14 15:09

%层次分析法的matlab程序
页: 1 2 3 [4] 5
查看完整版本: 用matlab进行熵值法求解熵权....怎么编程序啊????