使用 Matlab/Octave 合并多个矩阵

Merger of Multiple matrices using Matlab/Octave

假设我们有 3 个矩阵,ABC,它们的大小都相同 256x256。已知 Matrix A 的最后 20% 的列与 Matrix B 的前 20% 相同,而 Matrix B 的最后 10% 与 Matrix [=] 的前 10% 相同15=]。所以在这些情况下,因为我们知道重叠量,所以我不需要比较 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 个矩阵叠加在一起的最佳方法是什么?

合理利用矩阵indexing and concatenation

以你为例

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

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

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

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