前言:
此刻姐妹们对“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); endend3.利用回调函数暂停动图
利用回调函数,可以在按下鼠标、键盘时触发特定操作。比如,下面命令能够实现在图中空白处单击鼠标键,暂停动图5秒。
% 替换1,2中的figure()语句figure('ButtonDownFcn',@(src,event) pause(5));
注意,上述命令只是在plot窗口暂停了5秒,gif文件中不会暂停。如果要实现gif文件中也暂停,可以使用timer对象,相对复杂很多。
感谢点赞、关注、收藏,您的支持是我回复的最大动力~哦