龙空技术网

「MATLAB画图技巧」:动图画法,分享

论文辅导老师 913

前言:

此刻姐妹们对“matlab优化函数的图像怎么画出来的”大概比较珍视,大家都需要剖析一些“matlab优化函数的图像怎么画出来的”的相关文章。那么小编同时在网上网罗了一些对于“matlab优化函数的图像怎么画出来的””的相关知识,希望你们能喜欢,你们一起来学习一下吧!

1.修改Line对象的属性值

可以直接利用plot函数返回的Line对象,通过向修改对象的XData,YData,ZData等属性,然后利用pause暂停画面,即可实现动态图片。同时,可以利用getframe函数捕获当前plot画面,写入成gif文件

% 画椭圆 x*x/4 + y*y/3 = 1的切线a = 12*cos(0:2*acos(1/3):200*pi)+9i*sin(0:2*acos(1/3):200*pi);figure();h = plot(a(1));axis equalaxis([-12,12,-9,9]);[A,map] = rgb2ind(frame2im(getframe),256);imwrite(A,map,'1.gif','LoopCount',65535,'DelayTime',0.1);for ii = 1:length(a)    h.XData(ii) = real(a(ii));    h.YData(ii) = imag(a(ii));    [A,map] = rgb2ind(frame2im(getframe),256);    imwrite(A,map,'1.gif','WriteMode','append','DelayTime',0.1);    pause('on')    pause(0.2)end

下面是导出的gif文件,与plot函数的画面一样。

2. animatedline创建动画线条

animatedline是一个动画线条对象,通过addpoints函数向其中添加点数,实现动画效果。

% 阿基米德螺线theta = 0:0.01:50;y = theta.*exp(1i*theta);figure();h = animatedline(real(y(1)),imag(y(1)));axis equal;axis([-50,50,-50,50]);axis off[A,map] = rgb2ind(frame2im(getframe),256);imwrite(A,map,'2.gif','LoopCount',65535,'DelayTime',0.01);for k = 2:length(theta)    addpoints(h,real(y(k)),imag(y(k)));    drawnow    if(mod(k,20)==0)        [A,map] = rgb2ind(frame2im(getframe),256);        imwrite(A,map,'2.gif','WriteMode','append','DelayTime',0.01);    endend
3.利用回调函数暂停动图

利用回调函数,可以在按下鼠标、键盘时触发特定操作。比如,下面命令能够实现在图中空白处单击鼠标键,暂停动图5秒。

% 替换1,2中的figure()语句figure('ButtonDownFcn',@(src,event) pause(5));

注意,上述命令只是在plot窗口暂停了5秒,gif文件中不会暂停。如果要实现gif文件中也暂停,可以使用timer对象,相对复杂很多。

感谢点赞、关注、收藏,您的支持是我回复的最大动力~哦

标签: #matlab优化函数的图像怎么画出来的 #matlab仿真动图