首页 > 解决方案 > 从两个排序矩阵中创建一个新矩阵

问题描述

我有两个NxN矩阵AB. 我希望创建一个由交替放置的MxM矩阵和. 偶数行的顺序应该是: ... 而奇数行必须从矩阵 开始,如...CAB
A B A B A B
BB 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

这该怎么做?

标签: matlabmatrix

解决方案


您可以模块化构建矩阵[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);

推荐阅读