Extracting a 2 dimensional array from a 3 dimensional matrix.

215 vues (au cours des 30 derniers jours)
ANAGHA GOURI
ANAGHA GOURI le 26 Fév 2018
Commenté : Werner Barros le 29 Juil 2020
I have a 3D matrix named SM of order 17x10x181. I need to extract a 2D matrix from SM of order 10x181. What should be the command?

Réponse acceptée

Walter Roberson
Walter Roberson le 26 Fév 2018
squeeze(SM(5,:,:))
For example. Without the squeeze it would be a 1 x 10 x 181 and the squeeze makes it 10 x 181
  2 commentaires
onur erdem korkmaz
onur erdem korkmaz le 20 Juin 2018
Thank you for your answer. I want to ask an additional question. How do I add two matrices (10x81 add to another 10x81 in 17x10x81) with no for loop. (10x81 + 10x81 = 10x162)
Walter Roberson
Walter Roberson le 20 Juin 2018
[squeeze(SM(I, :, :), squeeze(SM(J,:,:))]
or
reshape( permute(SM([I, J], :, :), [2 3 1]), size(SM,2), [] )
Here [I, J] could be replaced by a vector of values to end up with a 10 x (81*n) array.

Connectez-vous pour commenter.

Plus de réponses (1)

KL
KL le 26 Fév 2018
Modifié(e) : KL le 26 Fév 2018
use squeeze,
a = squeeze(yourmatrix(1,:,:))
first row from all pages. I suggest reading the doc page of squeeze.

Catégories

En savoir plus sur Matrices and Arrays 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!

Translated by