Plot a three dimensional matrix

8 visualizzazioni (ultimi 30 giorni)
Roberto
Roberto il 23 Ago 2013
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.

Risposta accettata

Image Analyst
Image Analyst il 23 Ago 2013
Modificato: Image Analyst il 23 Ago 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.
For true 3D rendering, see Avizo: http://www.vsg3d.com/avizo/overview

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by