combination of two matrices
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Najiya Omar
am 12 Dez. 2016
Kommentiert: James Tursa
am 13 Dez. 2016
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 Kommentare
Akzeptierte Antwort
James Tursa
am 13 Dez. 2016
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,[])';
Weitere Antworten (1)
John BG
am 13 Dez. 2016
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 Kommentare
John BG
am 13 Dez. 2016
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
am 13 Dez. 2016
Reshaping a full matrix produces a shared data copy, not a deep data copy. So no elements get moved in memory at all.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!