how to plot by scatter3 a 3D matrix with its elements being logic variables?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Woo-Seok Lee
el 12 de Sept. de 2018
Comentada: jonas
el 18 de Nov. de 2018
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
0 comentarios
Respuesta aceptada
jonas
el 12 de Sept. de 2018
Editada: jonas
el 12 de Sept. de 2018
You can use your logic data in A to set the color and your X, Y and Z data for coordinates.
scatter3(X(:),Y(:),Z(:),[],A(:))
7 comentarios
Valeriy
el 18 de Nov. de 2018
I try tor reproduce command set(h1,'markeredgealpha',0.05),
but I have obtained message:
Error using specgraph.scattergroup/set
The name 'markeredgealpha' is not an accessible property for an instance
of class 'scattergroup'.
Help for scattergroup properties don't show presence of "markeredgealpha". How it works?
jonas
el 18 de Nov. de 2018
You probably have to specify that already when plotting, i.e.:
scatter(..., 'markeredgealpha',0.05)
Más respuestas (0)
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!