在MATLAB中插入几个矩阵中的元素以形成一个大矩阵



我是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

最新更新