B=D1';
MySample = B;
X = MySample - repmat(mean(MySample),10,1); % 中心化样本矩阵,使各维度均值为0
C = (X'*X)./(size(X,1)-1);
N=inv(C);
A=AA;
W=[0.1993,0.0690,0.0988,0.1029,0.0432,0.0691,0.0913,0.1493,0.0735,0.0620];
%A为决策矩阵,W为权值矩阵,M为正指标所在的列,N为负指标所在的列
[ma,na]=size(A); %ma为A矩阵的行数,na为A矩阵的列数
for i=1:na
B(:,i)=A(:,i)*W(i); %按列循环得到[加权标准化矩阵]
end
V1=zeros(1,na); %初始化正理想解和负理想解
V2=zeros(1,na);
BMAX=max(B); %取加权标准化矩阵每列的最大值和最小值
BMIN=min(B); %
for i=1:na
%if i<=size(M,2) %循环得到理想解和负理想解,注意判断,不然会超个数
V1(i)=BMAX(i);
V2(i)=BMIN(i);
%end
%if i<=size(N,2)
%V1(N(i))=BMIN(N(i));
%V2(N(i))=BMAX(N(i));
%end
end
for i=1:ma %按行循环求各方案的贴近度
C1=(B(i,:)-V1).*N.*(B(i,:)-V1)';
S1(i)=norm(C1);
用论坛内大佬分享的模型写的,数据在此D1:
-0.3147 0.1109 0.9043 1.2552 -1.3259 -0.1686 0.6511 0 0.6148 -0.0337
0.4047 0.7762 -1.3217 0.3254 1.1022 0.7867 0.8514 1.4094 -0.7905 -1.3832
-1.214 0.5544 0.626 -0.6044 0.1438 -1.3487 -1.3523 -0.8054 -0.9076 0.506
1.124 -1.4415 -0.2087 -0.9763 0.0799 0.7305 -0.1503 -0.604 1.0832 0.9109
AA
0.800000000000000 0.870000000000000 0 90 54 77 92 76 90 75
0.840000000000000 0.900000000000000 40 75 92 94 95 90 78 65
0.750000000000000 0.890000000000000 5 60 77 56 62 68 77 79
0.880000000000000 0.800000000000000 20 54 76 93 80 70 94 82
小弟写毕设初学,求指点