How can I get different 2D Matrices from a 3D matrix?

6 views (last 30 days)
Hi everyone, I have looked for someone with my same question but I haven't found nothing so specific.
I have a 3D matrix ( m x n x z ) and I want to get from that Matrix, the 2D matrices m x z and n x z. I am working with 3D medical images and I need different views of my patient, and I haven´t any problem to get the m x n matrix with this code:
for z=1:length(z)
imshow (A (:,:,z))
but if I do the same with the other variables, my resultant matrix is still a 3D matrix and I can't show it with the "imshow" function.
Please, could you help me?
Thank you so much.

Accepted Answer

Matz Johansson Bergström
Matz Johansson Bergström on 23 Jan 2015
Edited: Matz Johansson Bergström on 23 Jan 2015
The size of the A(1,:,:) will be a 1-by-n-by-z matrix, so you have to temporarily store it in a 2d matrix
tmp(:,:) = A(1,:,:);

More Answers (2)

Roger Stafford
Roger Stafford on 23 Jan 2015
Use matlab's 'squeeze' function to eliminate the singleton dimension(s).

Jose Andrés
Jose Andrés on 31 Mar 2015
Thank you both of you!


Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!