SOVDAL 2021-05-07 00:13 采纳率: 50%
浏览 91

求助,,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

 小弟写毕设初学,求指点

  • 写回答

1条回答 默认 最新

  • 源代码大师 博客专家认证 2021-05-07 08:31
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题