convert a 3D matrix to a 2D matrix
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I'm trying to convert a A by B by C matrix (3D) into a A*C by B matrix (2D). But I need the column (with A*C elements) to be not stacked, but alternated. To explain,
I would like to convert a 2 by 2 by 3 matrix X:
val(:,:,1) =
1 2
1 2
val(:,:,2) =
2 3
2 3
val(:,:,3) =
3 4
3 4
into 2*3 by 2 matrix:
[1 2
2 3
3 4
1 2
2 3
3 4]
I have tried:
X1=permute(X,[1 3 2]);
X2=reshape(X1,[6,2]);
but it generates:
X2 =
1 2
1 2
2 3
2 3
3 4
3 4
which is NOT what I want.
Is there a way to do this? Any advice appreciated!
0 commentaires
Réponse acceptée
madhan ravi
le 23 Sep 2020
reshape(permute(val, [2, 1, 3]), size(val, 2), []).'
Plus de réponses (1)
KSSV
le 23 Sep 2020
iwant = X2 ;
iwant(1:2:end,:) = X2(1:3,:) ;
iwant(2:2:end,:) = X2(4:end,:) ;
0 commentaires
Voir également
Catégories
En savoir plus sur Interpolation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!