Limit values based on one column?

1 次查看(过去 30 天)
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

采纳的回答

James Tursa
James Tursa 2017-10-2
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
  5 个评论
James Tursa
James Tursa 2017-10-2
So, what is the relationship between the columns of your 53x18 matrix and your 12x3 example? How are we supposed to know what you are wanting to plot if your example does not match your actual data?
DrWooo
DrWooo 2017-10-2
I've fixed the issue -- I failed to adjust the code you shared to the actual corresponding column in my data. The code works great.
Thanks for your assistance and patience.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Discrete Data Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by