当前位置: 首页 > news >正文

【matlab】将程序打包为exe文件(matlab r2023a为例)

文章目录

  • 一、安装运行时环境
    • 1.1 安装
    • 1.2 简介
  • 二、打包
  • 三、打包文件为什么很大

一、安装运行时环境

使用 Application Compiler 来将程序打包为exe,相当于你使用C编译器把C语言编译成可执行程序。

在matlab菜单栏–App下面可以看到Application Compiler

在这里插入图片描述

或者在App 设计工具里面也可以看到。

在这里插入图片描述

1.1 安装

查看是否安装

mcrinstaller

在这里插入图片描述

没有安装则按照提示安装即可,大小大概4G左右。

compiler.runtime.download

完成:
在这里插入图片描述

1.2 简介

MATLAB Compiler 工具箱是 MATLAB 提供的一种工具,用于将 MATLAB 程序、函数、数据和应用程序打包为独立的可执行文件、共享库、Web 应用程序或软件组件,方便分发和部署给不具备 MATLAB 环境的用户。

使用 MATLAB Compiler 工具箱生成的可执行文件不需要 MATLAB 本身,但需要一个免费的 MATLAB Runtime(运行时环境)。

主要功能:

  1. 生成独立的可执行文件:将 MATLAB 程序打包为 .exe 文件,用户无需安装 MATLAB,只需安装 MATLAB Runtime。

  2. 生成共享库:可以将 MATLAB 程序转换为 C/C++ 共享库(.dll.so),用于集成到其他编程环境中。

  3. 生成 .NET 组件:将 MATLAB 程序打包为 .NET 组件,便于在 .NET 环境(如 C# 或 VB.NET)中使用。

  4. 生成 Java 类:可以将 MATLAB 程序封装为 Java 类,并在 Java 应用程序中调用。

  5. Web 应用和企业部署:将 MATLAB 应用程序打包为 Web 应用程序,并与 MATLAB Production Server 结合,用于企业级部署。

  6. MATLAB Runtime:所有由 MATLAB Compiler 生成的应用程序都使用 MATLAB Runtime。这个运行时环境可以免费分发,允许在不安装 MATLAB 的机器上运行 MATLAB 应用程序。

常见用途:

  • 应用程序打包:开发的 MATLAB 应用程序可以打包为独立的应用程序,方便分发给不使用 MATLAB 的用户。
  • 企业部署:将算法转换为企业可以使用的形式,通过共享库或 .NET 组件在服务器端或客户端环境中使用。
  • 代码保护:通过编译器可以保护 MATLAB 源代码不被直接访问或修改。

限制:

  • MATLAB Compiler 并不能加速程序运行,它主要用于分发和部署。
  • 打包的程序在运行时依赖于 MATLAB Runtime。

二、打包

打开MATLAB Compiler,选择要打包的程序,会自动添加所需函数、数据等,也可手动添加。
在这里插入图片描述

有2个选项:

  • Runtime downloaded from web;
  • Runtime included in package。

第一个是用户需要自己下载Runtime,用户运行打包后的exe,会先下载运行环境,然后才能使用。打包后的exe很小,几MB到几十MB左右。

第二个是把运行环境也打包进来。打包后的程序很大,1G左右。

打包输出目录:

在这里插入图片描述

第三个目录是你自己测试用的,你打包的电脑上是有Runtime的,它用的就是那个。

第一个目录是打包后用于发布的正式版。

第二个目录类似,但是App和测试的一样的,不包含运行环境,或者不包含下载运行环境的部分。这个可以用于程序更新,比如之前用户已经安装过运行环境,现在你的程序更新了,用户就可以下载这个。


示例,在没有安装matlab的虚拟机运行打包后的exe。

(1)将运行环境打包进exe:

文件大小1.19GB

和平时安装软件一样的。
在这里插入图片描述

运行没问题:

在这里插入图片描述

(2) 不打包运行环境:

文件大小:9.02MB

这个就需要用户下载运行环境了。
在这里插入图片描述

会检查运行环境,没有的话就会下载,我这个在(1)里面已经安装过了。
在这里插入图片描述

三、打包文件为什么很大

MATLAB 是一种高级矩阵编程语言,背后有很多复杂的矩阵操作、算法优化和可视化功能。

这些功能并不是直接在可执行文件中生成的,而是依赖于 MATLAB 本身的运行时环境。

MATLAB Compiler 只将 MATLAB 程序编译成字节码(类似于 Java 的字节码),然后依赖 MATLAB Runtime 来解释和执行这些字节码。因此,打包的 .exe 需要 MATLAB Runtime 才能运行。

http://www.lryc.cn/news/441085.html

相关文章:

  • 从底层原理上解释clickhouse查询为什么快
  • FEAD:fNIRS-EEG情感数据库(视频刺激)
  • 标准库标头 <bit>(C++20)学习
  • redis群集三种模式:主从复制、哨兵、集群
  • 【MATLAB源码-第225期】基于matlab的计算器GUI设计仿真,能够实现基础运算,三角函数以及幂运算
  • 基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 网络封装分用
  • 【Finetune】(一)、transformers之BitFit微调
  • ubuntu24系统普通用户免密切换到root用户
  • 如何应对pcdn技术中遇到的网络安全问题?
  • 【WRF工具】WRF Domain Wizard第一期:软件下载及安装
  • 使用CUBE_MX实现STM32 DMA功能 (储存器发送数据到外设串口)+(外设串口将数据写入到存储器)
  • 【JavaScript】数据结构之树
  • 【AI大模型】LLM主流开源大模型介绍
  • Uniapp的alertDialog返回值+async/await处理确定/取消问题
  • Spring Boot中的响应与分层解耦架构
  • 基于python+django+vue的图书管理系统
  • Oracle数据库安装与SQL*Plus使用
  • C#通过MXComponent与三菱PLC通信
  • 深度学习实战91-利用时空特征融合模型的城市网络流量预测分析与应用
  • GlusterFS 分布式文件系统
  • 论文学习笔记6:Relation-Aware Heterogeneous Graph Neural Network for Fraud Detection
  • 无人机光电吊舱的技术!!
  • C++——判断year是不是闰年。
  • 31. 三维向量Vector3与模型位置
  • C# Action和delegate区别及示例代码
  • 深度优先搜索: 探索图结构的括号化旅程
  • LINUX网络编程:传输层
  • PyTorch框架
  • 分布式系统实战经验