我正在用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);

10-04 14:38