MATLAB 将多张figure生成gif,title随循环自动改变

这篇博客介绍了如何在MATLAB中通过循环生成多张图片,并将它们整合成一个带有动态标题的gif文件。代码示例展示了如何设置plot,调整坐标轴限制,并利用getframe和frame2im函数捕获和转换图像帧。最后,通过imwrite函数以gif格式保存并追加图像帧,创建出一个动态变化title的gif动画。
摘要由CSDN通过智能技术生成

实现功能
MATLAB将循环生成的多张图片整合为一个gif文件,并且title可以随着循环自动改变

实现代码

      del = 0.5; % time between animation frames
      
      for i = 1 : 10
          Fig = figure(1);
          filename = 'saved_gif.gif';
          x(i) = i;
          y = x + 1;
          plot(x,y);
          xlim([0 10]);
          ylim([0 15]);
          title(['x = ' num2str(i) ' with constant 1']);
          drawnow 
      
        % capture the plot as an image
          frame = getframe(Fig);
          im = frame2im(frame);
          [imind,cm] = rgb2ind(im,256);
          if i == 1
            imwrite(imind,cm,filename,'gif','Loopcount',inf,'DelayTime',del);
          else
            imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',del);
          end
      end

生成结果如图如下图所示:
result

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,用于生成采样定律的动画: ```matlab % 设置采样频率范围和信号频率 fs_range = 10:10:100; % 采样频率范围 f = 5; % 原始信号频率 % 生成时间序列和原始信号 t = 0:0.01:1; % 时间序列 x = sin(2*pi*f*t); % 原始信号 % 初始化动画 fig = figure(); ax = axes(fig); hold(ax, 'on'); xlim(ax, [0, 1]); ylim(ax, [-1.2, 1.2]); xlabel(ax, 'Time'); ylabel(ax, 'Amplitude'); title(ax, 'Sampling Theorem Animation'); % 循环生成各个采样频率下的恢复信号图像 for i = 1:length(fs_range) % 获取当前采样频率 fs = fs_range(i); % 进行采样并重建信号 ts = 0:1/fs:1; % 采样时刻序列 xs = sin(2*pi*f*ts); % 采样信号 xr = sinc_interp(ts, xs, t); % 重建信号 % 绘制采样信号和重建信号 plot(ax, t, x, 'k--', 'LineWidth', 1); stem(ax, ts, xs, 'r', 'LineWidth', 1); plot(ax, t, xr, 'b', 'LineWidth', 1); % 更新图像 drawnow(); pause(0.5); % 清除图像 cla(ax); end % 定义插值函数 function y = sinc_interp(x, y, xi) % Sinc插值函数 y = zeros(1, length(xi)); for i = 1:length(xi) y(i) = sum(y .* sinc(pi*(x - xi(i)), 'none')); end end ``` 该代码使用了一个名为`sinc_interp`的函数来进行Sinc插值,该函数的实现将不在赘述。运行后,会生成一个名为`sampling_theorem.gif`的GIF动画文件,其中包含了在不同采样频率下的恢复信号图像。动画效果如下: ![sampling_theorem.gif](https://i.loli.net/2022/01/10/BX9zJqZpSvF8VEf.gif)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值