Plot a three dimensional matrix
2 views (last 30 days)
Show older comments
hello,
I have a 128x128x128 matrix with coeficients between 0 and 1 representing the discrete wave function of a BEC. I want to interpret this data with a graph, make a plot such as giving different intenstity colour to each (i,j,k) coeficient from the matrix, or plotting some kind of isosurface. Most important, I want to see the significant values "spatial shape". I accept suggestions. Thanks for your help.
0 Comments
Accepted Answer
Image Analyst
on 23 Aug 2013
Edited: Image Analyst
on 23 Aug 2013
MATLAB doesn't have really great 3D volume visualization. About the best it can do are surface renderings or cutaway views, like you can see in the visualizations chapter in the help (MATLAB->Graphics->2-D and 3-D Plots->Surfaces, Volumes, and Polygons), for example the slice() or isosurface() functions. Perhaps one of those will work for you. If you want a two and a half D rendering, you can take one of your planes and pass it into surf(). Or you can somehow compress your image into a 2D image, like sum it along one of the dimensions or take a "maximum intensity projection" or something like that, then display it with image() or imshow(), after which you can apply a colormap if you want.
If the points you'd really like to visualize are scattered around various locations in your volume, like a wavy sheet, a surface like an ellipsoid, or even just isolated points, then you might be able to use plot3() or scatter3(). It's hard to make recommendation for a 3D array in general until we know what in that would you like to display.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!