I have a follow up question from a previous question I asked: So I have a [m n z] (3D) data set that gives me multiple spheres when rendered. I would like to color each individual sphere it's own unique color. After some research into matlab doc's, I came up trying to use 'isocolors'. It will uniformly change all the spheres but won't change each individual. I also understand that perhaps 'cdata' could perform this, but I'm a bit unclear how cdata works. When I try to use a map that is of the same dimensions [m n z] using 'CData', it gives me the following error:
Error using set CData must be an M-by-N matrix or M-by-N-by-3 array.
So this confuses me about CData; Let's say I have 5 spheres that are created in the original [m n z] data; how do I set up a M-by-N matrix that will color each uniquely? Does it have to be 5x1 or 1x5 matrix?
Here's my code that renders the data in 3D (where 'XX' is my [m n z] data):
p=patch( isosurface(XX,0)); isonormals(XX,p) isocolors(cdata,p) set(p,'FaceColor','interp','EdgeColor','none') daspect([1 1 .5]) view(3), axis vis3d tight, box on, grid off camproj perspective camlight, lighting phong, alpha(.5)
Any and all help would be much appreciated. Thank you!
No products are associated with this question.
Play games and win prizes!Learn more