Matlab 3D Matrix Plot [duplicate]

2019-02-13 17:17发布

问题:

This question already has an answer here:

  • Plotting 3-D Matrix *values* in MATLAB 2 answers

Ive created a 3d matrix in MATLAB. The values of the matrix are the velocity at that point in a rectangular section. I would like a plot with colours showing the values at each position, is this possible?

Phrasing this another way, I have a matrix of size 100x100x200. Id like a graph that has 100x100x200 points and the colour of each of those points is related to its value.

回答1:

This question is very similar to this question. You might want to check it out.

UPDATE:

Suppose you have a 3D matrix A:

A = rand(100,100,200);

You want to plot each entry of A mapped to a color at its 3D coordinates. First generate the coordinates:

[x,y,z] = meshgrid(1:100,1:100,1:200);

Now you are ready to use scatter3:

scatter3(x(:),y(:),z(:),5,A(:))

Here the : indexing vectorizes the coordinates column-wise.

Hope this helps.