Extracting a 2 dimensional array from a 3 dimensional matrix.

2 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Joseph Cheng
Joseph Cheng el 1 de Mayo de 2015
Editada: Joseph Cheng el 1 de Mayo de 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

Más respuestas (1)

Zhuang Min Choo
Zhuang Min Choo el 6 de Sept. de 2018
What if don't use the function "squeeze" to find the answer, any other options?

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by