044_Standalone App in Matlab中发布独立应用

server/2025/1/9 12:31:30/

在这里插入图片描述

Matalb中应用部署

Matlab因为年头久远,所有的东西都积累了一大堆。就说是应用部署,Matlab 2023b至少有下面的几个技术线

  • Matlab Compiler技术线:产生独立App可执行程序或者网页应用
  • Simulink Compiler技术线:产生独立App可执行程序,或者FMU(Functional Mock-up Unit)
  • MATLAB Compiler SDK技术线:产生软件组件
  • MATLAB production Server技术线:产生Web服务、数据库和企业应用
  • MATLAB Web App Server技术线:产生Web应用,支持MATLAB和Simulink

这是大的技术线划分,实际上,MATLAB的应用可以部署为:

  • 独立运行的(桌面)应用
  • Web应用
  • Microsoft Excel插件
  • 大数据分析应用
  • 微服务
  • 企业应用和云服务
  • 打包成库,供其他语言调用(Java、.Net, Python,C/C++)

所以,别问什么事情在MATLAB中行不行,就问你想要什么。只要给够钱,牛马们都能干。

打钱热线:666-666-6666

简单的独立App例子

下面给出一个简单的命令行应用打包的例子,为了展示过程,我们先整一个最简单的TUI应用,然后打包成独立App。

这个应用的功能超级牛叉,应用可以接受0个或者1个字符串参数,输出你好世界,来自xxx。当提供参数时,这个xxx就是参数,否则就是默认值:MATLAB。

matlab">function hello(name)
argumentsname (1,1) string = 'MATLAB'
end
fprintf('Hello, World from %s!\n', name);
end

这个程序可不要小看,是业界鼎鼎大名的Hello World程序,所有致力于修仙的小卡拉米首先都要把这个玩意整出来。跟别说,我们MATLAB仙人还提供了默认参数的选项,顿时把这个冒烟测试的例子提升到它不应该有的高度。

编译

首先,我们要把这个程序编译成可执行程序。请各位仙路上的同学们打开MATLAB,然后输入下面的命令:

matlab">help compiler.build.standaloneApplication

这个命令接受一个MATLAB函数文件的文件名作为参数,然后编译出可执行程序。当我们的函数文件是hello.m时,我们可以这样调用:

matlab">compiler.build.standaloneApplication('hello.m')

这个程序会在当前目录下申城一个hellostandaloneApplication的文件夹,里面包含了编译好的可执行程序:hello.exe(Windows)。

此外,这个目录里大概包含以下文件:

  • hello.exe:可执行程序hello.exe
  • includeSupportPackages:支持包列表,这里什么包都没有,字节0
  • readme.txt:说明文件
  • mccExcludedFiles.log:编译时排除的文件列表
  • requiredMCRProducts.txt:所需要的MATLAB Runtime产品
  • unresolvedSymbols.log:编译时未解决的符号列表
hello Executable1. Prerequisites for Deployment Verify that MATLAB Runtime(R2023b) is installed.   
If not, you can run the MATLAB Runtime installer.
To find its location, enter>>mcrinstallerat the MATLAB prompt.
NOTE: You will need administrator rights to run the MATLAB Runtime installer. Alternatively, download and install the Windows version of the MATLAB Runtime for R2023b 
from the following link on the MathWorks website:https://www.mathworks.com/products/compiler/mcr/index.htmlFor more information about the MATLAB Runtime and the MATLAB Runtime installer, see 
"Distribute Applications" in the MATLAB Compiler documentation  
in the MathWorks Documentation Center.2. Files to Deploy and PackageFiles to Package for Standalone 
================================
-hello.exe
-MCRInstaller.exe Note: if end users are unable to download the MATLAB Runtime using theinstructions in the previous section, include it when building your component by clicking the "Runtime included in package" link in theDeployment Tool.
-This readme file 3. DefinitionsFor information on deployment terminology, go to
https://www.mathworks.com/help and select MATLAB Compiler >
Getting Started > About Application Deployment >
Deployment Product Terms in the MathWorks Documentation
Center.

这个readme.txt文件里面包含了一些关于这个应用的信息,比如如何安装MATLAB Runtime,如何运行这个应用等等。

这里最重要的就是安装这个MCR,我们可以从requiredMCRProducts.txt中产看版本信息,然后去MATLAB官网下载对应的MCR安装包。

35010	

其他文件信息不再赘述。

安装包

当然,我们可以根据上面的readme.txt来安装这个应用,但是这个过程太繁琐了,我们可以把这个应用打包成一个安装包,然后一键安装。

这里我们就需要另外一个工具。修仙的朋友们请输入:

matlab">help compiler.package.installer

我们可以调用这个函数来产生一个安装包,这个包里最重要的参数有两个:

  • 第一个不具名参数:要打包的应用,直接用前面编译好的结果就行
  • RuntimeDelivery:MATLAB Runtime的安装包的提供方式,可以是web,可以是installer

当选择web时,这个安装包会包含一个URL,用户安装时会提示从这个URL下载MCR安装包。当选择installer时,这个安装包会包含MCR安装包,用户可以直接安装。

matlab">appFile = "hello.m";
buildResults = compiler.build.standaloneApplication(appFile);% >> buildResults
% buildResults =
%   Results - 属性:%                   BuildType: 'standaloneApplication'
%                       Files: {2x1 cell}
%     IncludedSupportPackages: {}
%                     Options: [1x1 compiler.build.StandaloneApplicationOptions]%% package the standalone applicationcompiler.package.installer(buildResults, ...'InstallerName', 'HelloInstall', ...'RuntimeDelivery', 'web'...);compiler.package.installer(buildResults, ...'InstallerName', 'HelloInstallWithRuntime', ...'RuntimeDelivery', 'installer'...);

这里我们展示了两种调用方式,web的方式会产生一个很小的安装文件:

  • helloInstaller.exe

另外一种方式会产生一个接近500M的玩意,包含了所需要的MCR安装内容,直接安装即可使用。

这两个文件的大小参见:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 首先,一定要相信MATLAB,它能做到一切,但是得加钱!
  2. 其次,MATLAB的应用部署技术线很多,不同的应用场景有不同的选择。
  3. 这个TUI的可执行文件还很小的,只有1.2M,用起来也很方便。

http://www.ppmy.cn/server/156113.html

相关文章

Edge安装问题,安装后出现:Could not find Edge installation

解决:需要再安装(MicrosoftEdgeWebView2RuntimeInstallerX64)。 网址:https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/?formMA13LH#download 如果已经安装了edge,那就再下载中间这个独立程序安装就…

大语言模型提示技巧(二)-给模型时间思考

在与大语言模型交互的时候,如果模型给出了错误的结论,不要着急否定大模型的能力,我们应当尝试重新构建查询,请求模型在提供它的最终答案之前进行一系列相关的推理。也就是说,如果给模型一个在短时间或用少量文字无法完…

SwanLab x LLaMA Factory:国产开源AI训练工具组合拳(含教程)

我们非常高兴地宣布SwanLab与LLaMA Factory建立合作伙伴关系,致力于为中国训练者提供优质、高效的大模型训练体验。 现在你使用新版本的LLaMA Factory启动训练前,可以在WebUI的「SwanLab configurations」(中文:SwanLab参数设置&…

使用python调用翻译大模型实现本地翻译【exe客户端版】

以前分享过一个 关于python 部署 网页端的 翻译大模型的 文章 有兴趣的小伙伴可以去看一下 https://blog.csdn.net/Drug_/article/details/144488795 今天就再分享一个 使用python 来制作一个 exe 客户端版的 本地大模型。 实际也很简单 只不过把 用 fastApi 框架 做的 网页端…

【机器人】机械臂:精度、重复精度、控制器分辨率、手腕、末端执行器

1.2 机械臂作为一种机械装置 1.2.2 机器人系统 机械臂、外部动力源、手臂末端感工具、外部和内部传感器、计算机接口、控制计算机以及编程软件。 1.2.3 精度和重复精度 精度:机械臂能以何种接近程度到达工作空间内给定点; 重复精度:机械臂…

SQL Server 的备份机制及其恢复实现

简介: 在数据驱动的世界里,确保数据库的安全和可恢复性至关重要。SQL Server 提供强大的备份和恢复机制,帮助我们保护数据免受意外丢失的影响。本篇将详细介绍 SQL Server 的备份机制、各种备份方法、备份设计逻辑,以及备份自动化…

腾讯云日志服务根据网段过滤非法数据

这个 SQL 语句使用了正则表达式和 regexp_replace 函数来对 client_ip 进行处理,并统计处理后的 IP 地址出现的次数。具体解释如下: SQL 语句结构 select regexp_replace(client_ip, ^((\d?\.){3})\d$, $10/24) as ips, count(1) as num from table_…

c#中集中常见的集合去重方式

使用HashSet去重 C# 中的 HashSet 是一种集合类型,它确保其中的元素是唯一的,不允许重复值的存在。当你尝试向 HashSet 中添加一个重复的元素时,HashSet 会忽略重复的值,而不会引发错误。这使得 HashSet 成为一个非常方便的数据结构,用于存储一组唯一的元素,并且在需要时…