2011-08-22 20 views

答えて

12

あなたが必要とするのは、少しのカテナネーションと再形成です。まず、次元2に沿って連結し、次に転置して線形化(AB(:))すると、最初の3つの要素がAの最初の行、次にBの最初の行、次にAの2番目の行などのベクトルが得られます。最後に残っているのは、すべてを再び配列に戻すために形を変えることです。

nColumns = size(A,2); 
AB = [A,B]'; 
AB = reshape(AB(:),nColumns,[])'; 

また、インデックス作成によってABを直接作成することもできます。この場合、AはBよりも1つ多くの行を持つことができます。これはおそらく上記より速いでしょう。

[nRowsA,nCols] = size(A); 
nRowsB = size(B,1); 

AB = zeros(nRowsA+nRowsB,nCols); 
AB(1:2:end,:) = A; 
AB(2:2:end,:) = B; 
関連する問題