狼羊白菜过河matlab编程,matlab绘制农夫过河动态图

84d3999fe922dc7df73c1ab7f3658e34.png

仿真秀平台一直有做针对于matlab入门的公开课,算法工匠带你学MATLAB基础课程,入门一段时间后我们就可以用

matlab做一下有意思的事比如说画个动态图:

300224b7a4afa468e066abc35c8d5144.png

是不是很神奇,使用好matlab动态绘图技能可以做很多有意义的是,关于动态绘图主要使用到以下几个命令:

第一种方法需要使用到的命令有:

getframe:是图像动态化,将每一帧的画面数据转换为列向量储存在自定义矩阵中。

movie:播放储存的自定义矩阵中的画面数据。

用这两个命令就可以绘制正弦函数的动态变化了 。代码如下:clc,clear,closeall%清存

warningoff%取消警告

featurejitoff%加速代码执行

x=-8:0.1:8;

y=sin(x);

figure1=figure;

axes1=axes('Parent',figure1,'Position',[0.120.120.80.8]);

plot(x,y,'LineWidth',2);

%创建arrow

annotation(figure1,'arrow',[0.520.52],[0.120.90],'LineWidth',2);

annotation(figure1,'arrow',[0.120.90],[0.520.52],'LineWidth',2);

set(axes1,'GridColor',[000],'MinorGridColor',[0.1019607843137250.1019607843137250.101960784313725],'XColor',[111],'YColor',[111]);

%fmat=moviein(20);%创建一个动画的矩阵,保存20祯

gg=1;

forj=1:30;

plot(x,0.1*j*y,'LineWidth',2);%循环创建动画数据

text('Parent',axes1,'FontSize',16,'FontName','TimesNewRoman','Interpreter','latex','String','$$y=A*sin(x)$$','Position',[-520],'Visible','on');

text('Parent',axes1,'FontSize',16,'FontName','TimesNewRoman','Interpreter','latex','String','$$x$$','Position',[5-0.20],'Visible','on');

axis([-88-33])

set(axes1,'GridColor',[000],'MinorGridColor',[0.1019607843137250.1019607843137250.101960784313725],'XColor',[111],'YColor',[111]);

fmat(:,j)=getframe;%拷贝祯到矩阵fmat中

im=frame2im(getframe);

[I,map]=rgb2ind(im,256);

ifgg==1

imwrite(I,map,'lxx.gif','GIF','Loopcount',inf,'DelayTime',0.1);

gg=gg1;

else

imwrite(I,map,'lxx.gif','WriteMode','append','DelayTime',0.1);

end

end

movie(fmat,5)

现在再演示另一种命令实现的方式。

drawnow:刷新图片窗口

使用该命令的思路是不断更新图像数据用drawnow;刷新图像就可以让图动起来。过冷水就

采用动态绘图给大家演示一下农夫是如何带着他的狼、羊、菜过河的。

84d3999fe922dc7df73c1ab7f3658e34.png

由于平台视频上传不太方便,感兴趣的可以看该链接Matlab 动态演示农夫渡河视频

由于动态过河代码较为繁琐,关于动Matlab 动态演示农夫渡河的代码可以看我的附件 。读者要是有想好动态绘图点子都可以给多冷水留言,过冷水帮你们实现创意。

e7057c1b4f9ff56b8e5c0a79758b5a88.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值