使用Matlab进行复杂循环

时间:2013-03-01 05:31:25

标签: matlab matlab-deployment

让五个矩阵给出:

 A=  [A1 A1 A1 A1 A1; A2 A2 A2 A2 A2; A3 A3 A3 A3 A3]

 B= [B1 B1 B1  B1  B1; B2 B2  B2 B2 B2;B3 B3 B3 B3 B3]

 C=[ C1 C1 C1 C1 C1; C2 C2 C2 C2 C2; C3 C3 C3 C3 C3]

 D= [D1 D1 D1 D1 D1 ; D2 D2 D2 D2 D2; D3 D3 D3 D3 D3]

 E=[ E1 E1 E1 E1 E1; E2 E2 E2 E2 E2; E3 E3 E3 E3 E3]

我想制作一个程序,使得输出包括获取每个给定矩阵的每一行并形成一个新矩阵。在矩阵长度增加和给定矩阵数量增加的情况下,如何使用循环。这个问题在我看来很复杂。因为我想通过使用循环和输出来推广任意数量的矩阵,比如20并且列数也增加到25,那么如何获得这些P1到P20的输出。任何人都可以使用Matlab帮助我解决这个复杂的问题

P1=[ A1 A1  A1 A1 A1; B1 B1 B1 B1 B1; C1 C1 C1 C1 C1 C1; D1 D1 D1 D1 D1; E1 E1 E1 E1 E1]
P2=[ A2 A2  A2 A2 A2; B2 B2 B2 B2 B2; C2 C2 C2 C2 C2 C2; D2 D2 D2 D2 D2; E2 E2 E2 E2 E2]

并且类似地获得其他矩阵。

注意:给定的5个矩阵是在循环的帮助下生成的。所以首先我会得到以下值:

  A= A1
  B= B1
  C=C1
  D=D1
  E=E1

  A= A1 A1 
  B= B1 B1
  C=C1  C1
  D=D1  D1
  E=E1  E1 .... AND SO ON

1 个答案:

答案 0 :(得分:1)

获取循环并将所有矩阵放在一起以形成3D张量。或者只是在创建矩阵时将矩阵放在3D张量中。

M(:,:,1) = A; M(:,:,2) = B; etc

然后

squeeze(M(1,:,:))' is the P1, squeeze(M(2,:,:))' is the P2

示例:

M(:,:,1) =

     1     2
     3     4


M(:,:,2) =

     5     6
     7     8

>> squeeze(M(1,:,:))'

ans =

     1     2
     5     6