Matlab动态图动态点绘制以及保存

本文介绍了如何使用Matlab实现动态曲线绘制,包括使用`animatedline`创建动态线条并添加点,以及自定义`MakeGif`函数来生成GIF动画。同时,还展示了如何绘制动态点并利用循环更新图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matlab实现动图以及动点的绘制

前沿

  • 之前一直在用CSDN进行代码和计算机相关知识的学习,但俗话说好记性不如烂笔头,将自己学习、工作生涯遇到的有趣或印象深刻的问题和知识记录下来作为知识的复习,好的接下来进入主题。
    Matlab是一款非常重要的科研软件,本人在大学和现阶段读研中时常用到它,在做最近的课设时为了让数据好看些,想自己做动态图,以下的代码是最基本的动态图以及动态点的绘制,再理解代码基础上大家可以根据自己的项目进行改进。

动态曲线绘制

clc;%清空命令行窗口
close all;%关闭所有图形窗口
clear;%清空所有变量区
%%动态曲线绘制法
x = 0:0.1:2*pi;%x的取值范围,步长为0.1
y = cos(x);%y与x之间的关系
axis([min(x) max(x) min(y) max(y)]);%限制XY轴的范围
line = animatedline('Color','r','LineWidth',3);%主要是animatedline(动态线条)的应用
for i=1:length(x)%一共63组点
    addpoints(line,x(i),y(i));%向 an 指定的动画线条中添加 x 和 y 定义的点
    MakeGif('GifTest.Gif',i);%保存动态图,此句可以不加
    pause(0.1);%调节此参数可以调节曲线动态显示速度
    drawnow;%更新图形,新点会自动连接到之前的点
end

在这里插入图片描述

动态点绘制

clc;%清空命令行窗口
close all;%关闭所有图形窗口
clear;%清空所有变量区
 x = 0:0.1:2*pi;%x的取值范围,步长为0.1
 y = cos(x);%y与x之间的关系
plot(x,y);%先画出动态点所在的曲线
hold on;%添加新绘图的时候保留当前绘图
h = plot(x(1),y(1),'Marker','o');%绘制起始点具体各个参数请查询相关文档
for i=1:length(x)
    set(h,'XData',x(i),'YData',y(i)); %%重置绘图对象
    pause(0.05); %暂停0.1s,使得绘图过程容易观察
    MakeGif('Point.Gif',i)  
end

在这里插入图片描述

关于MakeGif函数

function MakeGif(filename,index)  
    f = getframe(gcf);  
    imind = frame2im(f);  
    [imind,cm] = rgb2ind(imind,256);  
    if index==1  
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.001);
    else  
        imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.001);
    end  
end  
  • MakeGif是自定义的函数,它在另一个.m文件中,文件名就是函数名运行时记得main文件和函数文件在一个文件夹下。
    完结:MakeGif函数是知乎一篇文章写的非本人原创,知乎链接忘记了,具体函数内部各个代码运行逻辑笔者没有进行深入学习,感兴趣的大家可以看看帮助文档或者其他帖子

第一遍正式学习记录的博客,希望自己能够坚持记录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值