Plotting data in table after grouping
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Abed Alnaif
am 3 Jan. 2020
Kommentiert: Adam Danz
am 7 Jan. 2020
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
0 Kommentare
Akzeptierte Antwort
Adam Danz
am 3 Jan. 2020
Bearbeitet: Adam Danz
am 6 Jan. 2020
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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!