为了改文章作图,不得不整了一个Matlab2018b版本,看新版本特性发现了一个有趣的函数。这里mark一下,省得以后还得用
pause
去做
别的不说,直接给代码
clc; clear;
format long e;
h = animatedline;
axis([0,4*pi,-1,1])
x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
addpoints(h,x(k),y(k));
drawnow
end
这里的
animatedline
其实给
h
初始化了一个结构体,然后通过
addpoints
控制是什么形式的动画,然后通过
drawnow
开启动画。这里就是简单的画线。
相同的事情在过去也是可以实现的,我之前就用如下代码:
%测试animatedline函数
clc; clear;
format long e;
x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
plot(x(1:k),y(1:k),'b');
axis([0 4*pi -1 1]);
hold on;
pause(0.01);
end
实际效果差不多,但是人家的动画比我的流畅多了。
当然,这个函数如果只能做一维的线的话还是不特别有用,如果能做二维的动态图,那就非常强大了。简单浏览似乎是有这个功能的,这里种个草。有空再来挖掘一下。