【问题标题】:Inserteing the elements from several matrices to form a Large matrix in MATLAB [duplicate]在MATLAB中插入多个矩阵中的元素以形成一个大矩阵[重复]
【发布时间】: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


【解决方案1】:

很难看出你的循环发生了什么,但这个例子应该会有所帮助。矩阵连接使用逗号(添加列)或分号(添加行)完成。因此,如果您有三个大小为 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

【讨论】:

  • @ Will ,我需要各个值及其矩阵。我需要显示每个较小的矩阵。 m1、m2、m3 仅从 for 循环中获得。我有每个小矩阵的通用语法,即 mi。此外,如果我会遵循你的解决方案 [m1,m2,m2,m3,m4;..........(我会写多少)],因为 M 矩阵更大,我将依赖在用户 i/p 上。
  • 您好像已经问过这个问题的一个变体 3 次,但收到了许多不合您意的答案。也许尝试澄清您的问题,因为很多人都尝试过提供帮助。不要提出新问题,只需编辑您已经询问清楚的问题,因为我不知道您要做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多