How to add different color for each galaxy

1 view (last 30 days)
I am working on "Spiral Galaxy Formation Simulation" example in Mathworks. How can I add different colors for each galaxy's bodies? There is an option in each galaxy function for color but it doesn't work.
  1 Comment
Christos Dimopoulos
Christos Dimopoulos on 9 Dec 2017
Edited: Christos Dimopoulos on 10 Dec 2017
I have bodies with 8 properties. Last one is color. In each galaxy's bodies I give the same color, but different than other galaxy bodies.
bodies(i,8) = 'r';
When trying to plot seems I can't get it to color each body separately.
for i = 1:n,
points_x(i) = bodies(i,2);
points_y(i) = bodies(i,3);
points_z(i) = bodies(i,4);
points_col(i) = bodies(i,8);
end
% Remove the old plot.
if isempty(oldPlot)
oldPlot = fig;
elseif ~isempty(foundFig)
delete(oldPlot);
end
oldPlot = plot3(points_x,points_y,points_z, points_col);
drawnow
I get error: "An error occurred while running the simulation and the simulation was terminated Caused by: Not enough input arguments."
it only accepts one color for all
oldPlot = plot3(points_x,points_y,points_z, 'w.');
It might be the dot, I don't know...

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 10 Dec 2017
Use scatter3() instead of plot3() if you want to specify a color for each and every marker.
  7 Comments
Image Analyst
Image Analyst on 22 Dec 2017
You can have the indexes be variables, like points_x(indexes(1):indexes(2)) etc.
I don't know why you're deleting the old plot. Why not simply call "cla reset" if you want to wipe everything clean?
Christos Dimopoulos
Christos Dimopoulos on 27 Dec 2017
You are correct again!
cla fixed it!
cla reset unfortunately makes the axis appear from nowhere and loses its focus.
Anyway if it works with cla I am ok.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!