How can I visualize 3D matrix? (extension of imagesc)

128 views (last 30 days)
I have a 3-D matrix such as 50x70x30 like below.
(This image is from the Mathworks document)
Each slice(rowxcolumn) has cells with the range of 0 to 5. I want to visualize the whole slices with color range like imagesc in 2D, but I couldn't find the appropriate built-in function in MATLAB to represent the whole slices in a figure (For example, just imagine there are 30 slices of 2D imagesc(matrix) aligned in x-direction). Is there any way that I can solve this problem?
  4 Comments
Adam
Adam on 6 Mar 2020
You only need one. Take a look at the example. It creates X, Y, Z grids using meshgrid to provide positional volumes, but there is only 1 actual volume with data that you are visualising.
Jooeun Yoon
Jooeun Yoon on 7 Mar 2020
Yes, but the x,y,z grids from meshgrid in the example are including the axis(points) infortmation and the volume equation in order to visualize the information. The 3-D matrix that I have is generating a cell with random number(0~5) with each iteration so that there are '30' slices of 2D matices with randomly generating field. I think 'doc slice' is only used for the grid that have the axis information, but mine doesn't include it.

Sign in to comment.

Answers (1)

Rajani Mishra
Rajani Mishra on 9 Mar 2020
For visualizing the slices of a 3D matrix, you can try one of the below methods:
  • imshow3D function displays images in a slice by slice fashion. Refer below code:
A = [1 2 3; 4 5 6; 7 8 9];
A(:,:,2) = [10 11 12; 13 14 15; 16 17 18]
imshow3D(A);
This displays all the two slices of the image matrix. For more information refer below:
  • You can create slices from the image matrix and use imagesc function on the 2D image generated
image2D = squeeze(A(:,:,sliceNumber));
imagesc(image2D);

Community Treasure Hunt

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

Start Hunting!