2016-09-28 304 views
1

假设我们有3个矩阵,ABC,它们的大小都是256x256。已知的是,矩阵A的列的最后20%是相同的矩阵B和矩阵B的最后的10%的第一20%是相同的矩阵C的第一10%。所以在这些情况下,因为我们知道重叠的数量,所以我不需要比较3个矩阵,但我想在重叠处加入它们。使用Matlab/Octave合并多个矩阵

以较小的矩阵作为这里的例子是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点矩阵。将这三个矩阵叠加在一起的最好方法是什么?

+1

你能提供你到目前为止? – Aleksey

+1

你想如何确定这3个矩阵?这并不是很清楚:你想让他们拥有3D矩阵吗?每个矩阵一层?请解释并尝试提供了一段代码来了解 – Leos313

+0

或者创建具有三个4X4矩阵为例,所需的输出 – Andy

回答

1

正确使用矩阵indexingconcatenation

为您例如

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

对于256x256矩阵和您的级联条件:

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

由于256/10是没有整数你可以调整索引值