说明(废话)
之前没有进行python调用过matlab,前面用matlab engine for python可以通过调用matlab的源码文件的形式可以调用工程,但是这又有一个问题,就是在运行的时候必须提供python和matlab的全部源码
该文章是通过matlab源码转python package的方式调用。
我的演示版本是
matlab2022a
python3.9
pycharm2020.3专业版
解决方案
matlab代码
这只是一个测试示例,matlab代码可以更复杂…
function sum = myadd(a, b)
sum = a + b;
end
matlab 转python package
将matlab代码转python package
添加m文件,转python package
点上面的绿色勾勾,即可…
生成的是这个setup.py 和myadd目录
使用方法一(不推荐)
看到setup.py,就可以知道,又需要安装,怎么安装其实readme.txt已经有说明了。
其实,只要将setup.py中的
将R2022改为1.0即可
再次执行安装命令即可
python setup.py build
python setup.py install
对了,这个命令在setup.py所在的目录运行
执行完后,会将该库拷贝到python所在环境的lib/site-package目录下
此时是所有的项目工程都可以调用到该方法。
但是我更推荐下面的方法。
使用方法二(推荐)
通过比较文件,可以看出,其实就是将生产的myadd目录拷贝了过来,我根本不需要任意工程都能用这个。
方法一的操作都不需要做
直接编写python代码
import os
import myadd.for_redistribution_files_only.myadd as myadd
#init
mm = myadd.initialize()
#call matlab func
sum = mm.myadd(10, 20)
print(sum)
为了程序稳定,建议还是要try catch…
然后运行
运行
这是因为,运行仍然要依赖matlab 运行环境
如果有完整的matlab,那么可以不需要安装matlab MCR,如果没有完整的matlab,那么就要安装MCR支持库。
执行完成
希望对您有帮助
编辑:myhappyandy