笔者一直苦恼,matlab deploytool生成的python库,如何在python内调用,经过反复摸索,终于初步完成目标,本文简述了该过程。
MATLAB使用deploytool生成Python库
在matlab的deploytool中可以看到,matlab可以生成多种库,供其他语言编写的程序调用,本文生成并调用了如下图所示的“Python Package”。
MATLAB编写的函数:
function y = magicpkg(x)
y = magic(x);
MATLAB 的deploytool内几个关键环节已经在如下图所示的红色框体框出。
python库生成如下图所示的三个文件夹,其中,for_testing文件夹内readme.txt说明了该python库的使用方法。
python调用
确定好文件版本,笔者使用的是MATLAB R2016b,打包的python package支持python2.7 python3.3 python3.4
使用python3.4
readme.txt使用说明
以下为MATLAB打包python库时生成的readme.txt的简要翻译
Packaging and Deploying magicpkg
1. Prerequisites for Deployment
部署库的先决条件;
如果电脑内未安装R2016b的matlab环境,需要事先安装该环境,运行for_redistribution文件夹内的.exe文件可以下载安装;
运行软件安装包的安装文件,同时,安装文件开始安装MATLABRuntime,需要注意的是需要使用管理员模式运行。
确认电脑上安装了python2.7 3.3 或 3.4
进入到那个有setup.py文件的文件夹,如果您没有写的许可,那么就需要将其复制到临近的有许可的文件夹内。
在cmd命令行,安装MATLAB生成的python库
python setup.py install [options]
然后运行setup.py 安装命令。
您有管理员许可的情况下,用默认参数就可以了,不需要指定任何路径。
import magicpkg
使用magicpkg库,只需要import就可以了。
使用pycharm调用库
代码如下
__author__ = 'afore'
import magicpkg
#magicpkg.initialize_runtime(['-nojvm'])
# python库初始化以及实例化对象
myMagicCreator = magicpkg.initialize()
# 通过对象调用库内的magicpkg函数方法,返回值赋予给pyobj
pyobj = myMagicCreator.magicpkg(5)
print(pyobj)
myMagicCreator.terminate()
print("OK")