を私は正確に何をしたい、よりを行うファイル交換サイト(Interleave Vectors or Matrices)上にあるMATLAB関数を書きました。 .mファイルをダウンロードし、他の.mファイルと同じディレクトリに置くか、関数をコピーしてプログラムに貼り付けてください。
この関数は、任意の数のベクトルまたは行列を行または列でインターリーブします。入力が単なるベクトルの場合、方向を指定する必要はありません。余分な要素/行/列が出力行列の末尾に追加されます。提供される他の答えは、等しい長さのベクトルに非常に特有であり、ベクトルの向きが正しいことを確認する必要があります。関数を使用する方法の
例:入力:
1)行列
A = [1 2; 3 4] B = [5 6;7 8]
C = interleave2(A, B, 'row')
C = [1 2
5 6
3 4
7 8]
2の列をインターリーブ)行列の列
C = interleave2(A, B, 'col')
C = [1 5 2 6
3 7 4 8]
3)インターリーブベクトル(注インタリーブベクトルは同じ向きである必要はない)
A = [1 2 3 4] B = [5 6 7 8 9]'
C = interleave2(A, B)
C = [1 5 2 6 3 7 4 8 9]'
4)インターリーブ> 2つの行列
A = [1 2;3 4] B = [5 6;7 8]
C = [9 10;11 12] D = [13 14;15 16]
E = interleave2(A, B, C, D, 'col')
E = [1 5 9 13 2 6 10 14
3 7 11 15 4 8 12 16]
5)等しくない列について
A = [1 2;3 4]
B = [5 6 7 8;9 10 11 12]
C = interleave2(A, B, 'col')
C = [1 5 2 6 7 8
3 9 4 10 11 12]
6)インターリーブ>等しくない長さの2つのベクトル
A = [1 2 3 4] B = [5 6 7]
C = [8 9 10 11 12 13]
D = interleave2(A, B, C)
D = [1 5 8 2 6 9 3 7 10 4 11 12 13]
です。これが行ベクトルであることを保証するには' nums(:) '' – Jonas
' reshape'ソリューションは非常にエレガントです! – Anael