I am working in Matlab and I have a 3d matrix with dimensions 384x512x160, which is made of 384x512 slices.
How can I plot data like that?
What you really have is Volumetric data.
I guess that you have is a value of C for every X,Y,Z. And it actually depends a lot in what type of data you have. You'd need to give more information for an specific answer.
In general have a look to Volumetric data visualization techniques, but there is not just one way of doing this. Following i will leave you some examples you may want to try.
Slideomatic
One option is to use the Sliceomatic from FE:
Plotting slices
If you have medical data (or data on a big range)
you may want to use the typical approach of plotting just some of the slices. You can do that using subplot()
and imshow(squeeze(:,:, slice))
, or by just concatenating all slices together as img=[squeeze(:,:, slice1)) squeeze(:,:, slice2)); squeeze(:,:, slice3)) squeeze(:,:, slice4))]
, for example.
Isosurfaces
You may also just want to plot some equipotential surfaces of your data. You can create some surfaces and plot them using isosurface
:
Vold3D for indexed images
Or if your image is indexed image you may want to use vol3D
Pcolor3
A useful tool if you have "smooth" 3D data is pcolor3
, as it fills the 3D volume with semi-transparent surfaces that give the a nice visual 3D perception of "color clouds"
Disclaimer: I have no relation to any of the toolboxes presented here and I chose them by my own opinion. There are probably more, tools for this and if you think you want to add some, please edit the question freely.
来源:https://stackoverflow.com/questions/27659632/plotting-volumetric-data-in-matlab