Plotting data in table after grouping

조회 수: 5 (최근 30일)
Abed Alnaif
Abed Alnaif 2020년 1월 3일
댓글: Adam Danz 2020년 1월 7일
Hello,
I'm trying to plot data in a table after grouping it. If possible, I'd like to avoid using for loops with repeated 'plot' calls, since I think it would be slow. See below for an example of what I'm trying to do. Is there a way to make this code more efficient (e.g., avoid using for loops, or make a single 'plot' call)?
Thank you,
Abed
tbl = table([1;1;1;2;2;2;2;3;3],[0;1;4;0;2;3;5;1;4],rand(9,1),'VariableNames',{'id','t','x'});
uniqueIDs = unique(tbl.id);
figure;
hold on;
for iID = 1:length(uniqueIDs)
t = tbl.t(tbl.id==uniqueIDs(iID));
x = tbl.x(tbl.id==uniqueIDs(iID));
plot(t,x);
end

채택된 답변

Adam Danz
Adam Danz 2020년 1월 3일
편집: Adam Danz 2020년 1월 6일
arrayfun() is one way to do that.
tbl = table([1;1;1;2;2;2;2;3;3],[0;1;4;0;2;3;5;1;4],rand(9,1),'VariableNames',{'id','t','x'});
figure();
hold on
arrayfun(@(i)plot(tbl.t(tbl.id==i),tbl.x(tbl.id==i)),unique(tbl.id)) % do plotting
  댓글 수: 2
Abed Alnaif
Abed Alnaif 2020년 1월 6일
Hi Adam,
Thanks for your answer.
Abed
Adam Danz
Adam Danz 2020년 1월 7일
Glad I could help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by