我正在用MATLAB实时绘制数据我想用把手我的问题是我不知道如何绘制多条Y数据曲线。
我找到了下面的代码
它展示了如何绘制一组YData有没有人想到将代码转换成两个或更多的Y数据集,例如sind(x)作为绘图中的附加曲线?
x = 1:1000;
y = cosd(x);
xi = x(1);
yi = y(1);
h = plot(xi, yi, 'YDataSource', 'yi', 'XDataSource', 'xi');
for k = 2:1000...
xi = x(1:k);
yi = y(1:k);
refreshdata(h, 'caller');
drawnow;
end;
最佳答案
如果你真的想使用句柄,下面的代码对我有效
x = 1:1000;
y = cosd(x);
y2 = sind(x);
xi = x(1);
yi = y(1);
yi2 = y2(1);
figure(1); clf;
h = plot(xi, yi, 'YDataSource', 'yi', 'XDataSource', 'xi');
hold on;
h2 = plot(xi, yi2, 'YDataSource', 'yi2', 'XDataSource', 'xi');
for k = 200:1000
xi = x(1:k);
yi = y(1:k);
yi2 = y2(1:k);
refreshdata(h);
refreshdata(h2);
drawnow;
end;
你需要一个
hold on
。另外,您可以使用
refreshdata
而不是set
,正如Andrey建议的那样:set(h,'Xdata',xi,'YData',yi);
set(h2,'Xdata',xi,'YData',yi2);