从两个排序的矩阵中创建一个新矩阵

时间:2018-05-27 13:47:26

标签: matlab matrix

我有两个NxN矩阵AB。我希望创建一个新的MxM矩阵C,由交替放置的矩阵AB组成。
偶数行中的顺序应为:A B A B A B ...
而奇数行必须从矩阵B开始,如B A B A ...

例如,

对于N=2,如果:

A = [1 2; 
     3 4];

B = [5 6; 
     7 8];

然后是M=2

C = [A B; 
     B A];

%so that: 
C = [1 2 5 6; 
     3 4 7 8; 
     5 6 1 2; 
     7 8 3 4];

M=3

C = [A B A; 
     B A B; 
     A B A];

M=4

C = [A B A B; 
     B A B A; 
     A B A B; 
     B A B A];

通过这种方式,得到的矩阵将具有相同矩阵AB的所有对角线。

怎么做?

1 个答案:

答案 0 :(得分:1)

您可以构建矩阵[A B; B A]并以模块方式对其进行索引:

A = [1 2; 3 4];
B = [5 6; 7 8];
M = 3;
C = [A B; B A];
C = C(mod(0:size(A,1)*M-1, size(C,1))+1, mod(0:size(A,2)*M-1, size(C,2))+1);