Effacer les filtres
Effacer les filtres

How to use function "scatter3(y)" to show the image of a 3D matrix?

4 vues (au cours des 30 derniers jours)
Jianwei Guo
Jianwei Guo le 8 Mar 2012
I want to use Matlab to show the image of a 3D matrix made up of 1 and 0. For example, a 3*3*3 matrix named testy, and
testy(:,:,1)=[1,1,0;0,0,0;0,0,0];
testy(:,:,2)=[0,0,0;1,1,0;0,0,0];
testy(:,:,3)=[0,0,0;0,0,0;1,1,0];
I know that function "spy(y)" is used to show the image of 2D matrx, and I find it's easy to use. But I didn't get much from the help document about scatter3, especially, I'm confused about the example of sphere and the format of X,Y,Z.
Any suggestion will be helpful,and thank you very much.

Réponse acceptée

Jacob Halbrooks
Jacob Halbrooks le 8 Mar 2012
SCATTER3 takes its data as vectors and interprets them as the locations to place circles. In the help example for SCATTER3, the X,Y, and Z matrices returned by SPHERE are indexed with : to convert them to vectors. For your example, this might looks like:
testy(:,:,1)=[1,1,0;0,0,0;0,0,0];
testy(:,:,2)=[0,0,0;1,1,0;0,0,0];
testy(:,:,3)=[0,0,0;0,0,0;1,1,0];
Xmatrix = testy(:,:,1);
Ymatrix = testy(:,:,2);
Zmatrix = testy(:,:,3);
scatter3(Xmatrix(:), Ymatrix(:), Zmatrix(:));
However, based on your mention of SPY, I suspect that you are not interested in the plot above but instead in seeing the (x,y,z) locations of each 1 plotted. If this is the case, it might be helpful to use IND2SUB with FIND to get the coordinates of each 1 and then plot this with SCATTER3:
[rowInd,colInd,zInd]=ind2sub(size(testy),find(testy));
scatter3(colInd, rowInd, zInd);
The resultant scatter plot is similar to stacking SPY plots of each matrix sheet.
  1 commentaire
Jianwei Guo
Jianwei Guo le 9 Mar 2012
That's just what I mean by mention of SPY. And thank you very much!
By the way, sometimes it's slow to show the image in figure when the size of data is large. Do you know how to improve that or is that related to video adapter of my PC? Mine is NVIDIA GeForce 9500GT and CPU is 4-core.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by