combination of two matrices
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Najiya Omar
el 12 de Dic. de 2016
Comentada: James Tursa
el 13 de Dic. de 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 comentarios
Respuesta aceptada
James Tursa
el 13 de Dic. de 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,[])';
Más respuestas (1)
John BG
el 13 de Dic. de 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 comentarios
John BG
el 13 de Dic. de 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
el 13 de Dic. de 2016
Reshaping a full matrix produces a shared data copy, not a deep data copy. So no elements get moved in memory at all.
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!