create multiple spheres at given coordinates using a for loop or function and function call
13 views (last 30 days)
Show older comments
Nnamdi Chukwunenye
on 1 Sep 2020
Commented: Nnamdi Chukwunenye
on 3 Sep 2020
Hi I have a set of coordinates that I would like to use to generate spheres on my plot. But I am struggling to write a for loop or function that executes this properly. if working properly i should get 4 new spheres from the coordinates in xyz. I have included the points and my attempt. Any help would be greatly appreciated.
xyz = [-8.67212090030965 -7.78294481282592 4.19809966191787
4.30363429770975 -6.33796132936349 2.30412196271579
11.4626419696253 3.31049523749869 2.84193335035400
1.28757516363600 6.20802478748340 11.1358580308193]
x1 = xyz(:, 1);
y1 = xyz(:, 2);
z1 = xyz(:, 3);
SizeXYZ = size(xyz,1);
for i = 1:SizeXYZ
createspheres(x1(i),y1(i),z1(i));
end
function createspheres(spherex, spherey, spherez)
[spherex, spherey, spherez] = sphere(4);
newroot
end
0 Comments
Accepted Answer
Asad (Mehrzad) Khoddam
on 2 Sep 2020
You can use this code:
xyz = [-8.67212090030965 -7.78294481282592 4.19809966191787
4.30363429770975 -6.33796132936349 2.30412196271579
11.4626419696253 3.31049523749869 2.84193335035400
1.28757516363600 6.20802478748340 11.1358580308193]
x1 = xyz(:, 1);
y1 = xyz(:, 2);
z1 = xyz(:, 3);
SizeXYZ = size(xyz,1);
for i = 1:SizeXYZ
[x,y,z] = createspheres(x1(i),y1(i),z1(i));
surf(x,y,z);
hold on
end
%
function [X,Y,Z] =createspheres(spherex, spherey, spherez)
[x, y, z] = sphere(20);
X= x+ spherex;
Y = y+ spherey;
Z = z+spherez;
%newroot
end
3 Comments
Asad (Mehrzad) Khoddam
on 2 Sep 2020
You can make a 3d matrix and add x,y, and z to a layer(dimension) of the matrix.
allXYZ = zeros(4,3,SizeXYZ);
% 4 : size of points
% 3: x , y, and z
then in the loop you can have something like this:
allXYZ(:,:,i)= [x,y,z]; % if x is a vertical vector or [x', y', z'] for horizontal vectors
More Answers (0)
See Also
Categories
Find more on Graphics Performance 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!