爲了改文章作圖,不得不整了一個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
實際效果差不多,但是人家的動畫比我的流暢多了。
當然,這個函數如果只能做一維的線的話還是不特別有用,如果能做二維的動態圖,那就非常強大了。簡單瀏覽似乎是有這個功能的,這裏種個草。有空再來挖掘一下。