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

42 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);

Categories

Find more on Image Processing Toolbox 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!