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

조회 수: 10 (최근 30일)
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.

채택된 답변

Jacob Halbrooks
Jacob Halbrooks 2012년 3월 8일
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
Jianwei Guo
Jianwei Guo 2012년 3월 9일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Green에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by