【发布时间】:2014-08-24 15:44:03
【问题描述】:
我是 MATLAB 新手。我通过使用 FOR 循环生成了 n 个 (3 x 1 ) 的较小矩阵。所有矩阵都有随机值。现在我想连接所有值以形成一个大矩阵'M'
请查看下面的代码。
n= input('please input the number of criterias \n');
for k=1:1:n
fprintf('Please input the %d X %d decision matrix for no %d Criteria \n', n,n,k);
m=input('');
S=sum(m);
for i=1:1:n
for j=1:1:n
m(i,j)= m(i,j)/S(j);
end
end
rS=sum(m,2);
pk=rS/n;
fprintf('the prioritized matrix for no %d criteria ) is ::\n',k);
disp(pk);
end`
命令窗口显示像这样的 O/p
please input the number of criterias
3
Please input the 3 X 3 decision matrix for no 1 Criteria
[1 2 3 ; 4 5 6; 7 8 9]
the prioritized matrix for no 1 criteria ) is ::
0.1278
0.3333
0.5389
Please input the 3 X 3 decision matrix for no 2 Criteria
[4 5 6; 3 7 9; 8 1 4]
the prioritized matrix for no 2 criteria ) is ::
0.3224
0.4040
0.2736
Please input the 3 X 3 decision matrix for no 3 Criteria
[1 5 4 ; 2 7 0; 3 6 7]
the prioritized matrix for no 3 criteria ) is ::
0.2694
0.2407
0.4899
现在我想附加从所有较小的结果矩阵(优先矩阵)获得的值,以形成一个 LARGE MATRIX 'M'。 “M”应该是这样的
M = [ .1278 .3224 .2644 ;
.3333 .4040 .2407 ;
.5839 .2736 .4899 ]
现在请指导我如何以有效的方式做到这一点?
注意:“M”并不总是一个 3X3 矩阵,它在我的实际项目中是一个巨大的订单维度(大约 40X40),而且它并不总是固定的,它取决于用户输入,即“n”。对于之前的格式错误,我深表歉意。
【问题讨论】:
-
您对 SO 似乎也很陌生。花一点时间来了解如何格式化您的问题以便于阅读。看到输入文本的编辑框上方的那些小符号了吗?有一个看起来有点像 { }。那是为了格式化代码。尝试一下。查看其他问题并了解它们的外观。
-
是的,只是第二点,循环与您所要求的内容并不真正相关,因此不要包括它们,只需询问矩阵连接,因为这是您想要理解的内容。其余的只会让你的问题变得混乱。
-
@Daniel,@David Eisenstat,@Jonas Schnelli,@stefan P,@Reto Koradi;对于错误的演示格式,我深表歉意。请重新检查我的问题。我已经编辑过了。
标签: algorithm matlab for-loop matrix