Python调用matlab函数

参考文章:安装用于Python的MATLAB引擎API

环境:MATLAB R2022a、Anaconda、python3.9

检验配置

检查Python版本是否与Matlab版本相匹配

image-20221026205422132

安装API

打开matlab在命令行中输入 matlabroot 获得matlab的根目录,如图。

image-20221026205619517

以管理员的身份打开cmd,并进入到matlabroot目录下,接着进入extern->engines-> python,最中到达python文件夹下。完整命令如下:

image-20221026210028633

到达该问价夹后,根据需要切换到conda环境下,如果没有conda可以跳过,matlab的API需要根据python的版本进行编译,我使用的是conda 的虚拟环境,而且与base环境内的python版本不一致所以在此处切换了python环境,环境切换后,运行

  1. python setup.py install
  2. python setup.py build --build-base="builddir" install

此时文件夹下会生成 builddir 目录,进入该文件夹下的lib目录可以看到编译好的matlab包,将这个包放入anaconda对应虚拟环境下的 环境名\Lib\site-packages下即可

测试

测试主要使用了自己编写的test.m程序作为测试函数

image-20221026210954376

测试程序代码如下:

import matlab.engine
import matlab

eng = matlab.engine.start_matlab()
# 此地址为test.m文件存放的地址
eng.cd('C:/Users/Username/Documents/Python Scripts/stft_first_test_linux')
c = eng.test(1,2)
print(c)

最后

在matlab的官方教程中介绍了另一种通过将生成文件放在特定文件夹,并添加环境变量的方法来调用matlab包,测试之后发现只有电脑默认的python可以调用,当更换成conda下的虚拟环境时无法使用,所以自作聪明的将matlab包直接复制到了虚拟环境的包里面,没想到可以使用了。

posted @ 2022-10-26 21:18  Sophomores  阅读(503)  评论(0编辑  收藏  举报