MATLAB: Color based on values from a matrix.

colorsintensitymatricesplotting

Hello!
Quick question: I have a 3-by-n matrix with three rows, x- and y-coordinates of 5-15 randomized points on the first two rows, and mass on the 3rd row, ranging from 10-1000kg. I want the color of these points to be based on the mass, for instanse big mass=red, low mass=blue. I use the scatter function to plot these points and tried to use the third row of my matrix for color, but the colors seemed to be random. Is there a simple way of doing this?
Thanks!

Best Answer

This seems to color them correctly:
M = [randperm(20)', randperm(20)', randi(1000, 20,1)];
figure
scatter(M(:,1), M(:,2), 50, M(:,3), 'Filled')
colormap(jet(size(M,1)))
grid on
Also, it depends on the colormap (link) you are using. The jet (link) function (that I use here) colors them about the way you want.