1

假设有五个矩阵:

 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
4

1 回答 1

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
于 2013-03-01T05:39:30.743 回答