
仿真秀平台一直有做针对于matlab入门的公开课,算法工匠带你学MATLAB基础课程,入门一段时间后我们就可以用
matlab做一下有意思的事比如说画个动态图:

是不是很神奇,使用好matlab动态绘图技能可以做很多有意义的是,关于动态绘图主要使用到以下几个命令:
第一种方法需要使用到的命令有:
getframe:是图像动态化,将每一帧的画面数据转换为列向量储存在自定义矩阵中。
movie:播放储存的自定义矩阵中的画面数据。
用这两个命令就可以绘制正弦函数的动态变化了 。代码如下:
clc,clear,close all % 清存
warning off % 取消警告
feature jit off % 加速代码执行
x=-8:0.1:8;
y=sin(x);
figure1 = figure;
axes1 = axes('Parent',figure1,'Position',[0.12 0.12 0.8 0.8]);
plot(x,y,'LineWidth',2);
% 创建 arrow
annotation(figure1,'arrow',[0.52 0.52],[0.12 0.90],'LineWidth',2);
annotation(figure1,'arrow',[0.12 0.90],[0.52 0.52],'LineWidth',2);
set(axes1,'GridColor',[0 0 0],'MinorGridColor',[0.101960784313725 0.101960784313725 0.101960784313725],'XColor',[1 1 1],'YColor',[1 1 1]);
%fmat=moviein(20); %创建一个动画的矩阵,保存20祯
gg = 1;
for j=1:30;
plot(x,0.1*j*y,'LineWidth',2); %循环创建动画数据
text('Parent',axes1,'FontSize',16,'FontName','Times New Roman','Interpreter','latex','String','$$y=A*sin(x)$$','Position',[-5 2 0],'Visible','on');
text('Parent',axes1,'FontSize',16,'FontName','Times New Roman','Interpreter','latex', 'String','$$x$$','Position',[5 -0.2 0],'Visible','on');
axis([-8 8 -3 3])
set(axes1,'GridColor',[0 0 0],'MinorGridColor',[0.101960784313725 0.101960784313725 0.101960784313725],'XColor',[1 1 1],'YColor',[1 1 1]);
fmat(:,j)=getframe; %拷贝祯到矩阵fmat中
im = frame2im(getframe);
[I,map] = rgb2ind(im,256);
if gg == 1
imwrite(I,map,'lxx.gif','GIF', 'Loopcount',inf,'DelayTime',0.1);
gg = gg 1;
else
imwrite(I,map,'lxx.gif','WriteMode','append','DelayTime',0.1);
end
end
movie(fmat,5)现在再演示另一种命令实现的方式。
drawnow:刷新图片窗口
使用该命令的思路是不断更新图像数据用drawnow;刷新图像就可以让图动起来。过冷水就
采用动态绘图给大家演示一下农夫是如何带着他的狼、羊、菜过河的。

由于平台视频上传不太方便,感兴趣的可以看该链接 Matlab 动态演示农夫渡河视频
由于动态过河代码较为繁琐,关于动Matlab 动态演示农夫渡河的代码可以看我的附件 。读者要是有想好动态绘图点子都可以给多冷水留言,过冷水帮你们实现创意。
