让五个矩阵给出:
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
答案 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