【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.rhkb.cn/news/430740.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

啤酒过滤——关于过滤助剂的介绍

在啤酒的酿造过程中,过滤是一个关键步骤,在啤酒厂中最常用的过滤助剂主要有两种:硅藻土和珍珠岩。它们能够帮助去除杂质,确保啤酒的清澈和口感。过滤助剂通常以粉状形式存在,它们被涂抹在过滤机的支撑材料上&#xff0…

深度合成算法备案和大模型备案的区别是什么

以下是关于大语言模型上线备案和深度合成算法备案区别的文档内容: 一、大语言模型上线备案与深度合成算法备案的区别 备案对象 大语言模型上线备案:主要针对生成式人工智能(AIGC)产品中的大型语言模型,能够生成文本、图…

MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块

联发科Helio P35 MT6765安卓核心板 MediaTek Helio P35 MT6765是智能手机的主流ARM SoC,于2018年末推出。它在两个集群中集成了8个ARM Cortex-A53内核(big.LITTLE)。四个性能内核的频率高达2.3GHz。集成显卡为PowerVR GE8320,频率…

MATLAB系列09:图形句柄

MATLAB系列09:图形句柄 9. 图形句柄9.1 MATLAB图形系统9.2 对象句柄9.3 对象属性的检测和更改9.3.1 在创建对象时改变对象的属性9.3.2 对象创建后改变对象的属性 9.4 用 set 函数列出可能属性值9.5 自定义数据9.6 对象查找9.7 用鼠标选择对象9.8 位置和单位9.8.1 图…

Leetcode面试经典150题-39.组合总数进阶:40.组合总和II

本题是扩展题,真实考过,看这个题之前先看一下39题 Leetcode面试经典150题-39.组合总数-CSDN博客 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数…

E2VPT: An Effective and Efficient Approach for Visual Prompt Tuning

论文汇总 存在的问题 1.以前的提示微调方法那样只关注修改输入,而应该明确地研究在微调过程中改进自注意机制的潜力,并探索参数效率的极限。 2.探索参数效率的极值来减少可调参数的数量? 解决办法 提示嵌入进行transformer中 提示剪枝 Token-wise …

004_动手实现MLP(pytorch)

import torch from torch import nn from torch.nn import init import numpy as np import sys import d2lzh_pytorch as d2l # 1.数据预处理 mnist_train torchvision.datasets.FashionMNIST(root/Users/w/PycharmProjects/DeepLearning_with_LiMu/datasets/FashionMnist, t…

DevExpress WPF中文教程:如何解决行焦点、选择的常见问题?

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

0-1开发自己的obsidian plugin DAY 2

今天上午解决了三个问题 1. typescript长得丑/一片飘红/格式检查太严格 在vscode的settings里搜索下面这个然后false掉: "typescript.validate.enable": false 就不会一片飘红了(其他下载第三方插件如TSLint和typescript hero的方法都不好使&…

虚幻引擎的三种输入模式和将控件显示到屏幕上

首先要知道一个概念 , HUD 和 Input 都是由 PlayerController 来控制的 而虚幻的Input控制模式有三种 Set Input Mode Game Only (设置输入模式仅限游戏): 视角会跟着鼠标旋转 , 就是正常游戏的模式 , 这也是游戏默认输入模式 Set Input Mode UI Only (设置输入模式仅限UI): …

DHCP协议原理(网络协议)

DHCP简介 定义 DHCP(动态主机配置协议)是一种网络管理协议,能够自动为局域网中的每台计算机分配IP地址及其他网络配置参数,包括子网掩码、默认网关和DNS服务器等。这一机制极大简化了网络管理,尤其在大型局域网中&am…

sheng的学习笔记-AI-K-摇臂赌博机(K-armed bandit)

AI目录:sheng的学习笔记-AI目录-CSDN博客 强化学习 sheng的学习笔记-AI-强化学习(Reinforcement Learning, RL)-CSDN博客 基础知识 单步强化学习任务 先考虑比较简单的情形:最大化单步奖赏,即仅考虑一步操作。需注意…

使用API有效率地管理Dynadot域名,注册域名服务器(NS)信息

前言 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…

GPU共享技术深度剖析与总结

在人工智能和深度学习领域,GPU(图形处理器)已成为不可或缺的计算工具。随着深度学习模型的规模和复杂性的增加,单个GPU已经难以满足所有训练需求,GPU共享技术应运而生,成为提高训练效率的重要手段。本文将深…

聊聊AUTOSAR:基于Vector MICROSAR的TC8测试开发方案

技术背景 车载以太网技术作为汽车智能化和网联化的重要组成部分,正逐步成为现代汽车网络架构的核心,已广泛应用于汽车诊断(如OBD)、ECU软件更新、智能座舱系统、高清摄像头环视泊车系统等多个领域。 在这个过程中,ET…

oklink爬虫逆向分析

目标网站 aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2tsYXl0bi9ibG9jay1saXN0L3BhZ2UvMg 一、抓包分析 请求头有很多加密参数,不过经过观察,发现只有X-Apikey是检测的 二、逆向分析 发包类型不是XMLHttpRequest,不能下xhr断点 打开启动器…

【项目案例】物联网比较好的10+练手项目推荐,附项目文档/源码/视频

练手项目推荐 1 智能小车 项目功能介绍: 本项目由三部分组成:应用端(微信小程序)、设备端(Hi3861)、驱动端(UPS)。 1. 应用端,采用微信小程序作为应用端控制界面。在开…

spring里面内置的非常实用的工具

一 、请求数据记录 Spring Boot提供了一个内置的日志记录解决方案,通过 AbstractRequestLoggingFilter 可以记录请求的详细信息。 AbstractRequestLoggingFilter 有两个不同的实现类,我们常用的是 CommonsRequestLoggingFilter。 通过 CommonsRequestL…

CSS | 如何来避免 FOUC(无样式内容闪烁)现象的发生?

一、什么是 FOUC(无样式内容闪烁)? ‌FOUC(Flash of Unstyled Content)是指网页在加载过程中,由于CSS样式加载延迟或加载顺序不当,导致页面出现闪烁或呈现出未样式化的内容的现象。‌ 这种现象通常发生在HTML文档已经加载&…

WPF DataGrid 动态修改某一个单元格的样式

WPF DataGrid 动态修改某一个单元格的样式 <DataGrid Name"main_datagrid_display" Width"1267" Height"193" Grid.Column"1"ItemsSource"{Binding DataGridModels}"><DataGrid.Columns><!--ElementStyle 设…