MATLAB: How to plot a color-coded matrix

color-codedgraph

Hello
I have a matrix of data including 3 column,for example:
a=[1 0 3;1 1 4;1 2 4;1 3 5]
x=a(:,1);y=a(:,2);z=a(:,3);
1) in my real data, z is the value associated with (x,y). so I would like to have a 2D chart with x and y value being color-coded based on z value. like all the points in the chart with 1<z<2 are red and 2<z>3 are blue and etc. is there a way to do that?
2) to get what i want, I used the below command for a sample matrix with different z value but the chart is just giving me all points in blue color. what am i missing? what is the best syntax for what I want?
figure
scatter3(x(0<z<=2),y(0<z<=2),z(0<z<=2),'g.')
hold on
scatter3(x(2<z<=4),y(2<z<=4),z(2<z<=4),'k.')
hold on
scatter3(x(4<z<=6),y(4<z<=6),z(4<z<=6),'r.')
Thank you !

Best Answer

Try this:
a=[1 0 3;1 1 4;1 2 4;1 3 5]
x=a(:,1);
y=a(:,2);
z=a(:,3);
L1 = (z > 1) & (z <= 3); % Logical Subscripts For Condittion #1
L2 = (z > 3) & (z <= 5); % Logical Subscripts For Condittion #2
figure(1)
scatter3(x(L1), y(L1), z(L1), 'rp')
hold on
scatter3(x(L2), y(L2), z(L2), 'bp')
hold off
grid on
Change the conditions as necessary for your data.