2016-09-28 8 views
1

3つの行列、A,BおよびCとすると、すべてが同じサイズ256x256です。マトリックスAの最後の20%は、マトリックスBの最初の20%と同一であり、マトリックスBの最後の10%は、マトリックス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つの行列を結合するだけで連結が機能しません。これらの3つのマトリックスを重ね合わせる最良の方法は何でしょうか?

+1

あなたはこれまでに得たものを提供できますか? – Aleksey

+1

この3つのマトリックスをどのようにマージしますか?これはあまり明確ではありません:あなたはそれらに3Dマトリックスを持たせたいですか?各マトリックスの1つのレイヤー?説明してください – Leos313

+0

を理解するためのコードを提供するか、3つの4x4行列と目的の出力を持つ例を作成してください。 – Andy

答えて

1

ご例えば256x256マトリックスとあなたの連結条件については

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

をマトリックスindexingconcatenation

の適切な使用を行います。

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

256/10はあなたが調整することができる何の整数ではありませんので、インデックス値