how to plot by scatter3 a 3D matrix with its elements being logic variables?
Show older comments
I made a 3D matrix representing a ellipsoid. The elements are logic variables, 1 or NaN. I thought this 3D matrix as Cartesian coordinate and the points on it. I want to plot this by using scatter3. But scatter3 accepts 1D vectors as inputs for position. (Before, I made a 2D matrix representing a ellipsoid and plotted this by using imagesc. This function accepts 2D matrix and don't require position vectors.)
Here is the code.
%making a coordinate
Sx=1; Sy=1; Sz=1; Nx=50; Ny=50; Nz=50; dx= Sx/Nx; dy=Sy/Ny; dz=Sz/Nz;
xa=[0:Nx-1]*dx;
ya=[0:Ny-1]*dy;
za=[0:Nz-1]*dz;
xa=xa-mean(xa);
ya=ya-mean(ya);
za=za-mean(za);
[X,Y,Z]=meshgrid(xa,ya,za);
%ellipsoid
rx=0.5;
ry=0.35;
rz=0.2;
A=zeros(length(xa),length(ya),length(za));
A(((X/rx).^2+(Y/ry).^2+(Z/rz).^2)<=1)=1;
A(((X/rx).^2+(Y/ry).^2+(Z/rz).^2)>1)=NaN;
Now I don't know how to transform the matrix for scatter3
Accepted Answer
More Answers (0)
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!