combination of two matrices
1 次查看(过去 30 天)
显示 更早的评论
I have two matrices (160,12) in size. I want to put them in one matrix (320,12)by making the first 40 rows in matrix 1 following by the first 40 rwos in matrix 2, creating the first 80 rows of the new matrix. the second 40 rows in matrix 1 following by the second 40 rwos in matrix 2, creating the second 80 rows and so on.
Thank you in advance!!!
0 个评论
采纳的回答
James Tursa
2016-12-13
A = 160 x 12 matrix
B = 160 x 12 matrix
Ar = reshape(A',40*12,[]);
Br = reshape(B',40*12,[]);
result = reshape([Ar;Br],12,[])';
更多回答(1 个)
John BG
2016-12-13
There is not need to reshape
[szA1 szA2]=size(A);[szB1 szB2]=size(B);
[A(:,[1:floor(szA2/2)]) B(:,[1:floor(szA2/2)]) A(:,[floor(szA2/2)+1:end]) B(:,[floor(szA2/2)+1:end])]
3 个评论
John BG
2016-12-13
reshaping implies pulling all elements one by one, putting them in a long string, and then putting them back in the desired matrix shape.
Instead, by directly addressing a partial range of the original matrix oneu saves time that may be noticeable if the matrix is big.
Regards
John BG
James Tursa
2016-12-13
Reshaping a full matrix produces a shared data copy, not a deep data copy. So no elements get moved in memory at all.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!