組み合わせる方法の仕様が明確ではa
ありb
ません。これを行う1つの方法があります。
a
およびから構築された単一の列ベクトルを作成しますb
。次にreshape
、その列ベクトルを行列に入れます。
c = reshape( [ a(:); b(:) ], 8, 15);
これは、の要素の総数と等しい場合にのみ機能します。numel(a) + numel(b)
c
マトリックスを作成するのに十分な要素を提供していないため、実行の試みc = reshape( [ a(:); b(:) ], 7,12);
は失敗します。7x12
この回答に関するNoufalのコメントを更新すると、問題の要件が少し変わります。基本的には列ベクトルを作成しますが、自由に使用できる要素の数に応じてCにのみ入力します。
A = rand(5,6);
B = rand(2,45);
C = zeros(8,10);
tmp = [A(:); B(:)]; % create temporary column vector
maxIdx = min( [numel(tmp), numel(C)] ); % determine if tmp or C has fewer elements
C(1:maxIdx) = tmp(1:maxIdx); % fill C from tmp using indices 1:maxIdx