reshape 4D matrix into 2D matrix
Afficher commentaires plus anciens
Good morning Matlab, I have a 4D-Double matrix that has this dimension: (5*5*5*30) and I need to convert it into a 2D matrix, I suppose, so the new matrix will only have the 1st Column (:,1) from each five by five matrix stacked horizontally,so the new 2D matrix should be 25 by 30 (25*30) dimension, where each column (:,1:30) is basically extracted from the original matrix (5*5*5*30) matrix. To try to explain this a bit more, I have 30 of: five sets of (5by5) matrices, and I only need the information in the first column of each set of 5*5, hence (25 rows) and 30 columns. Can Someone pleaaaaase point me in the right direction? Thank you SO much! have a great day.
Réponses (2)
James
le 18 Oct 2016
0 votes
Does this do what you're looking for?
reshape(squeeze(x(:,1,:,:)),25,30)
where x is your 5x5x5x30 matrix?
2 commentaires
Amine Ben Ayara
le 18 Oct 2016
James
le 19 Oct 2016
Try reshape(squeeze(x(:,1,:,:)),25,[]), and see what the final size of the matrix is.
Walter Roberson
le 18 Oct 2016
Possibly
reshape(M(:, 1, :, :), 25, 30)
Or
reshape( permute( M(:, 1, :, :), [3, 1, 4, 2]), 25, 30)
The difference is that for an A x B x C x D matrix the first would be (A*C) x D, but the second would be (C*A) x D different of elements
2 commentaires
Amine Ben Ayara
le 18 Oct 2016
Walter Roberson
le 18 Oct 2016
Please show size( MNPr1_1to30)
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!