How to use function "scatter3(y)" to show the image of a 3D matrix?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
0 Kommentare
Akzeptierte Antwort
Jacob Halbrooks
am 8 Mär. 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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Scatter Plots finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!