Matlab | 绘制动态曲线(使用 animatedline 对象)

效果如下:

示例代码:

figure('Color','w');
h1 = animatedline;
h1.Color = 'r';
h1.LineWidth = 1.0;
h1.LineStyle = '-.';

h2 = animatedline;
h2.Color = 'b';
h2.LineWidth = 1.0;
h2.LineStyle = '-';

axis([0,4*pi,-1,1])
x = linspace(0,4*pi,1000);
y1 = sin(x);
y2 = cos(x);
for k = 1:length(x)
    addpoints(h1,x(k),y1(k));
    addpoints(h2,x(k),y2(k));
    drawnow;
end

 要点:

  • Matlab提供了绘制动态曲线的专用对象 animatedline,和该对象的专用方法 addpoints。通过 addpoints 和 drawnow 在循环中对 animatedline 对象的不断赋值和打印,就可以绘制出动态曲线。
  • animatedline 对象在声明的时候,可以是没有数据点的空曲线,也可以是有若干初始点的曲线。如果 animatedline 对象有初始点,在声明的时候会直接在 Figure 中绘制出来。如果想要让曲线从虚空中来,那么示例中 “先声明空曲线,再逐点赋值” 的操作是需要掌握的。
  • animatedline 对象拥有 Line 的各类属性。
  • 如果没有提前创建一个 Figure,在绘制 animatedline 对象的时候,会自动创建一个默认的 Figure。所以如果想要对 Figure 的属性进行调整,请在声明 animatedline 对象之前自定义一个 Figure。
  • 最后,一个重要的细节:请使用 axis 固定坐标轴!

 

posted @ 2020-05-24 16:53  埠默笙声声声脉  阅读(5947)  评论(0编辑  收藏  举报