求助,,matlab萌新在用马氏距离做topsis模型时遇到了报错:带有下标的赋值维度不匹配。

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

 小弟写毕设初学,求指点

希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html