【matlab】生成 GIF 的函数(已封装可直接调用)

news/2024/9/19 8:41:22/ 标签: matlab, 前端, 数据库

文章目录

  • 前言
  • 一、函数输入与输出
  • 二、函数代码
  • 三、例程(可直接运行)
  • 参考文献


前言

生成 gif 图片时遇到的问题,为了后续调用方便,封装为函数


一、函数输入与输出

  • 输入:
    • cell_figure: cell 数组,数组元素是活动窗口的结构体
      • 由 drawnow; F=getframe(gcf) 得到
    • name: string, 图片的名称
  • 输出
    • 无输出,生成一张名为 name 的 GIF 图像

二、函数代码

matlab">%% write_gif() function,可以生成 GIF 的函数
%
% 输入参数:
%   input1: cell(struct), stru. describe the graph frame
%   input2: string, name of file
%
% 输出参数:
%   无输出,生成一个 GIF 图片function write_gif(cell_figure, name)% initpic_num = 1;name = string(name); % be strfor i = 1: length(cell_figure)graph_struct_i = cell_figure{i};% frame 2 imageI=frame2im(graph_struct_i);[I,map]=rgb2ind(I,256);% 写入 gif 文件if pic_num == 1imwrite(I, map, name + '.gif', 'gif', 'Loopcount', inf, 'DelayTime', 0.2);elseimwrite(I, map, name + '.gif', 'gif', 'WriteMode', 'append', 'DelayTime', 0.2);end% pic_num addpic_num = pic_num + 1;end
end

三、例程(可直接运行)

matlab">clear; clc; close all;%% create line% init
cell_figure = {};for i = 1:5% create figfig = plot([i, 2 + i*2, -3 + i*3, 7 - i*4]);ylim([-20, 20])% draw & write celldrawnow;F=getframe(gcf);cell_figure{end+1} = F;end% invoke
write_gif(cell_figure, 'test_1')%% write_gif() function,可以生成 GIF 的函数
%
% 输入参数:
%   input1: cell(struct), stru. describe the graph frame
%   input2: string, name of file
%
% 输出参数:
%   无输出,生成一个 GIF 图片function write_gif(cell_figure, name)% initpic_num = 1;name = string(name); % be strfor i = 1: length(cell_figure)graph_struct_i = cell_figure{i};% frame 2 imageI=frame2im(graph_struct_i);[I,map]=rgb2ind(I,256);% 写入 gif 文件if pic_num == 1imwrite(I, map, name + '.gif', 'gif', 'Loopcount', inf, 'DelayTime', 0.2);elseimwrite(I, map, name + '.gif', 'gif', 'WriteMode', 'append', 'DelayTime', 0.2);end% pic_num addpic_num = pic_num + 1;end
end
  • 输出结果
    在这里插入图片描述

参考文献

[1] https://blog.csdn.net/lusongno1/article/details/78632457


在这里插入图片描述


http://www.ppmy.cn/news/1526966.html

相关文章

TextCNN:文本卷积神经网络模型

目录 什么是TextCNN定义TextCNN类初始化一个model实例输出model 什么是TextCNN TextCNN(Text Convolutional Neural Network)是一种用于处理文本数据的卷积神经网(CNN)。通过在文本数据上应用卷积操作来提取局部特征,…

基于Java、SpringBoot、Vue的加油站管理系统设计

摘要 本系统是一个基于Java、SpringBoot和Vue的加油站管理系统。它旨在提高加油站的运营效率,优化客户服务体验,并通过数据分析支持更精准的业务决策。该系统包括用户管理、汽油管理、站点管理等功能模块。通过这些功能,管理员可以方便地管理…

校园管理新篇章:Spring Boot系统实现策略

第3章 系统分析 3.1 需求分析 校园管理系统主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系…

springBoot整合easyexcel实现导入、导出功能

本次使用的框架是springboot&#xff0c;使用mybatisplus操作表&#xff0c;使用easyexcel实现表格的导入与导出。 操作步骤 1、导入依赖&#xff1a;&#xff08;pom.xml&#xff09; <!-- 查看excel的maven仓库 https://mvnrepository.com/artifact/com.alibaba/easyex…

统计信息的导出导入

常用场景&#xff1a; 1.生产环境的统计信息导入到测试环境使得执行计划的产生能极大程度上等同于生产环境。 2.割接测试环境的统计信息快速导入生产&#xff0c;替代生产库统计信息的收集操作&#xff0c;减少停机时间。 两种方式&#xff1a; 1.expdp/exp STATISTICS&…

使用js保存Blob和File文件

保存两种类型的文件方式都是一样&#xff1a; 1.保存Blob文件 (blob:Blob)>{// 创建一个 URL 对象const url URL.createObjectURL(blob);// 创建一个下载链接并触发下载const a document.createElement("a");a.href url;a.download "example.png"…

阿里云社区领积分自动打卡Selenium IDE脚本

脚本 感觉打卡比较麻烦&#xff0c;要点开点按钮这种机械化的操作。 所以就自己整了个脚本&#xff1a; {"id": "f9999777-9ad6-40e0-9435-4f105919c982","version": "2.0","name": "aliyun","url": …

2021 年 6 月青少年软编等考 C 语言二级真题解析

目录 T1. 数字放大思路分析 T2. 统一文件名思路分析 T3. 内部元素之和思路分析 T4. 整数排序思路分析 T5. 计算好数思路分析 T1. 数字放大 给定一个整数序列以及放大倍数 x x x&#xff0c;将序列中每个整数放大 x x x 倍后输出。 时间限制&#xff1a;1 s 内存限制&#x…

GO 闭包

文章目录 1. **累加器&#xff08;状态保持器&#xff09;**2. **缓存&#xff08;记忆化&#xff09;**3. **工厂函数**4. **函数式编程风格**5. **创建动态行为的函数**6. **控制访问权限** 总结 高级闭包的使用在 Go 中非常灵活和强大&#xff0c;特别是在需要保存状态或对外…

PCIe进阶之TL:First/Last DW Byte Enables Rules Traffic Class Field

1 First/Last DW Byte Enables Rules & Attributes Field 1.1 First/Last DW Byte Enables Rules Byte Enable 包含在 Memory、I/O 和 Configuration Request 中。本文定义了相应的规则。Byte Enable 位于 header 的 byte 7 。对于 TH 字段值为 1 的 Memory Read Request…

【C++】——继承详解

目录 1、继承的概念与意义 2、继承的使用 2.1继承的定义及语法 2.2基类与派生类间的转换 2.3继承中的作用域 2.4派生类的默认成员函数 <1>构造函数 <2>拷贝构造函数 <3>赋值重载函数 <4析构函数 <5>总结 3、继承与友元 4、继承与静态变…

《信息系统安全》课程实验指导

第1关&#xff1a;实验一&#xff1a;古典密码算法---代换技术 任务描述 本关任务&#xff1a;了解古典密码体制技术中的代换技术&#xff0c;并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母&#xff0c;也就是说字母表为26个小写字母。 相关知识 为了完…

通信工程学习:什么是HFC混合光纤同轴电缆

HFC&#xff1a;混合光纤同轴电缆 HFC&#xff08;Hybrid Fiber Coaxial&#xff09;混合光纤同轴电缆是一种结合了光纤与同轴电缆的宽带接入网技术。以下是对HFC混合光纤同轴电缆的详细解释&#xff1a; 一、HFC混合光纤同轴电缆的定义与概述 定义&#xff1a;HFC是一种结合光…

基于微信小程序的高校实验室管理系统的设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的高…

S3C2440开发板点亮LED灯+PWM定时器

目录 GPIO引脚和寄存器概述 点亮LED灯步骤 1.配置GPIO 2.点亮LED 设置引脚为输出 控制引脚电平 完整代码 PWM GPIO引脚和寄存器概述 GPIO端口&#xff1a; S3C2440的GPIO引脚可被配置为输入或输出&#xff08;控制LED的引脚通常配置为输出模式&#xff09;。寄存器&#…

VRRP 笔记

一、概念&#xff1a; vrrp&#xff1a;Virtual Router Redundancy Protocol 虚拟路由冗余协议&#xff0c;当网关发生故障时&#xff0c;进行主备切换&#xff0c;保证业务连续性 把多台物理机的网关虚拟成一台Virtual Router&#xff0c;称为 VRID VIP&#xff1a;虚拟IP VM…

简述三次握手和四次断开

在计算机网络中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的协议&#xff0c;它通过三次握手&#xff08;Three-Way Handshake&#xff09;建立连接&#xff0c;并通过四次挥手&#xff08;Four-Way Wave&#xff09;断开连接。下面…

图像处理 -- ISP功能之局部对比度增强 LCE

局部对比度增强&#xff08;LCE&#xff09; 局部对比度增强&#xff08;Local Contrast Enhancement, LCE&#xff09;是一种图像处理技术&#xff0c;旨在通过调整图像的局部区域对比度&#xff0c;增强图像细节和视觉效果。LCE 的实现方式多种多样&#xff0c;以下是几种常…

godotenv拜读

简介 应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。 但是在实际开发中&#xff0c;如果同一台机器运行多个项目&#xff0c;设置环境变量容易冲突&#xff0c;不实用。godotenv库从.env文件中读取配置&#xff0c;…

项目实战应用Redis分布式锁

Redis分布式锁 一、前言二、Redis分布式锁过期处理三、Redis分布式实现3.1 基于Jedis 的API实现分布式锁3.1.1 基础命令3.1.2 基于Jedis API的分布式锁3.1.3 基于Lua脚本实现分布式锁 四、Redisson的使用五、Redision锁 核心源码分析六、总结 一、前言 对于项目中使用Redis分布…