2016-09-28 344 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是沒有整數你可以調整索引值