使用Matlab/Octave合并多个矩阵
问题描述:
假设我们有3个矩阵,A
,B
和C
,它们的大小都是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点矩阵。将这三个矩阵叠加在一起的最好方法是什么?
答
正确使用矩阵indexing和concatenation
为您例如
D = [A B(:,3) C];
对于256x256
矩阵和您的级联条件:
D = [A B(:, 0.2*256+1 : 0.9*256) C]
由于256/10
是没有整数你可以调整索引值
你能提供你到目前为止? – Aleksey
你想如何确定这3个矩阵?这并不是很清楚:你想让他们拥有3D矩阵吗?每个矩阵一层?请解释并尝试提供了一段代码来了解 – Leos313
或者创建具有三个4X4矩阵为例,所需的输出 – Andy