Matlab动态绘图并保存成gif

Matlab动态绘图并保存成gif

话不多说,直接上代码,使用时直接更改数据即可

% 定义数据

x = 1:20000;

y = 2*x;

y1 =3*x;

% 降采样

downsample_factor = 50; %自定义,减小绘图和保存时间

x_downsampled = x(1:downsample_factor:end);

y_downsampled = y(1:downsample_factor:end);

y1_downsampled = y1(1:downsample_factor:end);

% 初始化图形窗口

figure;

hold on;

xlabel('Time[s]');

ylabel('J');

box on;

set(gcf, 'Color', 'w'); % 设置图形背景为白色

% 初始化 animatedline 对象

h = animatedline('Color', [0, 0.4470, 0.7410], 'LineWidth', 0.2, 'Marker', 'o');

h1 = animatedline('Color', [0.8500, 0.3250, 0.0980], 'LineWidth', 0.2, 'Marker', 's');

% 固定坐标轴范围

axis([min(x_downsampled), max(x_downsampled), min([y_downsampled, y1_downsampled]), max([y_downsampled, y1_downsampled])]);

% 初始化 GIF 文件名

filename = 'dynamic_plot.gif';

% 逐步添加数据点并保存为 GIF

for i = 1:length(x_downsampled)

% 添加数据点

addpoints(h, x_downsampled(i), y_downsampled(i)); % 添加 y 的数据点

addpoints(h1, x_downsampled(i), y1_downsampled(i)); % 添加 y1 的数据点

drawnow limitrate; % 限制刷新频率

% 捕获当前帧

frame = getframe(gcf);

im = frame2im(frame);

[imind, cm] = rgb2ind(im, 256); % 将 RGB 图像转换为索引图像

% 写入 GIF 文件

if i == 1

% 第一帧,创建 GIF 文件

imwrite(imind, cm, filename, 'gif', 'Loopcount', inf, 'DelayTime', 0.1);

else

% 后续帧,追加到 GIF 文件

imwrite(imind, cm, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.1);

end

end

hold off;

disp(['GIF 文件已保存为: ', filename]);

相关推荐

华为 华为麦芒5说明书下载
36365快速检测中心

华为 华为麦芒5说明书下载

📅 08-27 👁️ 8663
三角洲行动全平台活动皮肤、奖励领取教程
36365快速检测中心

三角洲行动全平台活动皮肤、奖励领取教程

📅 09-07 👁️ 5621
徐州筑巢软件科技有限公司
det365APP

徐州筑巢软件科技有限公司

📅 09-13 👁️ 1556
怀旧服泰坦护腿图纸怎么获得 世界BOSS掉率最高
365bet足球比

怀旧服泰坦护腿图纸怎么获得 世界BOSS掉率最高

📅 06-27 👁️ 8369
联想Y400系列
365bet足球比

联想Y400系列

📅 09-12 👁️ 6371
棋牌游戏哪个最好玩 十大耐玩棋牌游戏推荐
36365快速检测中心

棋牌游戏哪个最好玩 十大耐玩棋牌游戏推荐

📅 07-17 👁️ 2718