MATLAB: Limit values based on one column

excelscatterplot

Hi. I'm trying to plot data inputted from Excel into a simple (x,y) scatter plot.
As an example, data in the Excel file was:
Location Distance (m) Time (seconds)
1 5 120
1 10 200
1 25 300
1 30 350
2 4 100
2 50 200
2 70 250
2 100 300
3 5 75
3 12 100
3 13 200
3 40 300
I've already successfully inputted the data into a matrix using:
B = xlsread('filename','sheetname');
I set each column as a variable:
L = B(:,1);
D = B(:,2);
T = B(:,3);
I'd like to plot (D,T) for each value of L. I know how to do this if I call each cell in L; for example:
for x = D(1:4)
for y = T(1:4)
scatter(x,y)
end
end
However, I'd like to set it up so that I can call for the location (ie, for L = 1) and create separate (x,y) plots of each L, as I have quite a bit of data and think this will be faster. Additionally, the L values correspond with a text value (I converted to numbers as the text appeared as NaN). If possible, I'd like to make the title of each graph correspond with the text Location value. Any suggestions for how to approach this are greatly appreciated.
Cheers

Best Answer

Something like this?
u = unique(B(:,1));
for k=1:numel(u)
d = B(B(:,1)==u(k),:);
figure; scatter(d(:,2),d(:,3)); grid on;
title(sprintf('Location = %d',u(k)));
end
Related Question