Extracting a 2 dimensional array from a 3 dimensional matrix.

2 visualizzazioni (ultimi 30 giorni)
If I have a 3 dimensional matrix, with rows 1 through 10, columns a through z and pages 1 through 4, how do I extract a 2 dimensional array containing the leftmost slab of data, that is, all the column "a" data for all four pages? This would be a 10 x 4 array, with all the data from columns "a" (or 1 if you prefer numeric).
I will rearrange said data, and then want to reinstall the rearranged data in its original place in the 3 dimensional matrix.
Any help would be appreciated.

Risposta accettata

Joseph Cheng
Joseph Cheng il 1 Mag 2015
Modificato: Joseph Cheng il 1 Mag 2015
so you have a matrix of 10 rows, 26 columns and 4 deep. That would be a 10x26x4 matrix. to get just all rows for column a for all pages is this example that is a bit easier to see
Testmat= randi(10,2,3,4);))
A = squeeze(Testmat(:,1,:))
A = A*0
Testmat(:,1,:) = A

Più risposte (1)

Zhuang Min Choo
Zhuang Min Choo il 6 Set 2018
What if don't use the function "squeeze" to find the answer, any other options?

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by