使用Matlab / Octave合并多个矩阵

时间:2016-09-28 07:08:35

标签: matlab matrix octave overlapping

假设我们有3个矩阵ABC,则所有矩阵都具有相同的大小256x256。众所周知,矩阵A的最后20%列与矩阵B的前20%相同,而矩阵B的最后10%与矩阵C的前10%相同1}}。因此,在这些情况下,因为我们知道重叠量,所以我不需要比较3个矩阵,但我想在重叠处加入它们。

以较小的矩阵为例,这里是3个矩阵

A = [1 2 3 4 ; 5 6 7 8; 9 10 11 12];
B = [3 4 13 14; 7 8 15 16; 11 12 17 18]; 
C = [14 19 20 21; 16 22 23 24; 18 25 26 27];

所以我希望我的输出是

D = [1     2     3     4    13    14    19    20    21
     5     6     7     8    15    16    22    23    24
     9    10    11    12    17    18    25    26    27

我希望这可以更好地解释它。我是matlab的新手。我尝试使用矩阵移位,但我们只有循环移位可用。 连接不起作用,因为它只加入了3个矩阵。将这3个矩阵叠加在一起的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

正确使用矩阵indexingconcatenation

为您的例子

D = [A B(:,3) C];

对于256x256矩阵和您的连接条件:

D = [A B(:, 0.2*256+1 : 0.9*256) C]

由于256/10不是整数,您可以调整索引值