MATLAB R2015b使用MATLAB Compiler Runtime生成Python库的方法

使用MCR将.m文件编译成自己的Python库

官方文档链接:https://ww2.mathworks.cn/help/compiler_sdk/gs/create-a-python-application-with-matlab-code.html?searchHighlight=Create a Python Package&s_tid=doc_srchtitle#d120e3957

注:我使用的是32位python,所以下载的matlab位数和MCR的位数最好与之相对应,否则会出现编译成功,但执行失败的现象。

  1. 在matlab主界面上方的应用栏,依次选择应用程序 -> Library Compiler
    在这里插入图片描述

  2. 选择Python Package作为目标类型,同时添加想要打包的.m文件,在最下方,有一项"Files required for your library to run",是供用户添加相关的依赖文件(涉及到不同的.m间相互调用)
    在这里插入图片描述

  3. 简单地填写这几项后,选择右上角的绿色Package箭头打包
    在这里插入图片描述

  4. 打包成功后,会在matlab工作路径下生成一个与Library Name同名的目录,选择for_redistribution_files_only的setup.py进行安装,安装命令:python setup.py install

  5. 这样我们就可以正常的导入它了。不过第一次调用函数前,需要进行初始化以加载MATLAB Runtime

import Main 
a= Main.initialize() 
......
a.terminate()

总结:MATLAB Runtime 是一套独立的共享库,可以执行已编译的 MATLAB 应用程序或组件。如果需要在目标机器(即未安装matlab环境的主机)导入编译好的库,则需安装版本和位数相对应的MATLAB Runtime。附MCR官网下载链接:
https://ww2.mathworks.cn/products/compiler/matlab-runtime.html

##附具体调用方法

假若您的matlab函数是这样的:

function y = makesqr(x)
y = magic(x);

而通过MCR生成的库叫MagicSquarePkg,那么调用方式是这样的:

import MagicSquarePkg
a = MagicSquarePkg.initialize()
b = a.makesqr(5)    	 # 有时要以 matlab.double([5])的方式传参
a.terminate()

当参数数目过多时,需要加 nargout参数以指定输出参数的个数,如

import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.gcd(100.0,80.0,nargout=3)
print(t)
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值