行列を連結して新たな行列を作る方法
212 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Naoto Iwaki
am 6 Nov. 2019
Kommentiert: Shunichi Kusano
am 7 Nov. 2019
サイズM×Nの行列AとサイズM×N行列Bからサイズ2M×Nの行列Cを作りたいです。
たたし行列Aの下にそのまま行列Bを連結するのではなく
行列Cの各要素が
「A(1,1:end); B(1,1:end); A(2,1:end); B(2,1:end); ....... A(M,1:end); B(M,1:end)]
になるようにfor文などでループをまわしたいのですがどう書けばいいですか。(Mがかなり大きいため)
例えば,
3×3サイズの行列A=[1 2 3; 7 8 9; 13 14 15]、 行列B=[4 5 6; 10 11 12; 16 17 18]から
6×3の行列C=[1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15;16 17 18]を作るといったようにしたいです。
0 Kommentare
Akzeptierte Antwort
Shunichi Kusano
am 6 Nov. 2019
行方向にAとBを交互にCに入力したいということですよね。例えば
C = zeros(2*M,N);
C(1:2:end,:) = A;
C(2:2:end,:) = B;
で実現出来ます。1:2:endは1から始まって終わりまで一個飛ばし、2:2:endは2から始まって終わりまで一個飛ばしという意味になります。
2 Kommentare
Shunichi Kusano
am 7 Nov. 2019
問題解決に繋がってよかったです。
蛇足ですが、reshape使う方法もあります。上の例ですと
C = reshape([A,B]', [N 2*M])';
今後のご参考までです。
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!