命令窗口显示的O/p如下
现在请指导我如何有效地做到这一点?
我是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
现在我想附加从所有较小的结果矩阵(优先矩阵)获得的值,以形成一个大矩阵'M'。'M'应该像这样
M = [ .1278 .3224 .2644 ;
.3333 .4040 .2407 ;
.5839 .2736 .4899 ]
现在请指导我如何有效地做到这一点?
注意:'M'并不总是一个3X3矩阵,它是一个巨大的订单维度(大约40X40)在我的实际项目中,而且它并不总是固定的,它取决于用户输入即'n'。非常抱歉之前的格式错误
很难看出循环发生了什么,但是这个例子应该有所帮助。矩阵连接是用逗号(添加列)或分号(添加行)完成的。如果你有三个大小为1x3的行矩阵,像这样
m1=[.1278 .3224 .2644]
m2=[.3338 .4040 .2407]
m3=[.5839 .2736 .4899]
你可以用分号将你的小矩阵连接成一个3x3矩阵M:
M=[m1;m2;m3]
看起来像这样:
M =
0.12780 0.32240 0.26440
0.33380 0.40400 0.24070
0.58390 0.27360 0.48990