MATLAB调用Anaconda中的python的两种方法

目录

跨语言调用python函数(不推荐)

在MATLAB中运行python脚本

附:添加环境变量方法


通过查找发现了两种调用python函数的方法,分别是在MATLAB中调用python的函数等,以及通过MATLAB调起cmd直接运行python脚本,在此更加推荐第二种方法。

主要参考文章:

如何在MATLAB中调用(运行)“用Python写成的函数或脚本”

matlab调用python编译器_【Matlab-Python混编】Matlab调用Python环境检查

跨语言调用python函数(不推荐)

在MATLAB命令行窗口输入:

pyversion

发现由于使用Anaconda管理python,与直接安装python并添加至环境变量不同,所以MATLAB并不能直接识别到python版本。

因此使用:

pyversion('D:\softwares\anaconda3\python.exe')

直接输入python路径,查看python版本,但出现了如下报错:

原来是因为,不同版本的MATLAB对应不同版本的python,对应版本可在此链接查看,对应表格如下图:

我所使用的R2022a版本最高支持python3.9,而我在Anaconda中安装的python版本为3.10,因此,需要安装3.9版本的python,在Anaconda Prompt中输入以下命令:

conda create --name py39 python=3.9

安装python3.9后,再次在MATLAB命令行中输入:

pyversion('D:\softwares\anaconda3\envs\py39\python.exe')
pyversion

即可看到正常识别python版本了:

此时就可以使用如下语句来实现MATLAB中python函数的调用了:

py.print('Hello world!');         % 调用python自有库函数
py.cv2.imshow('MATLAB-src',src);  % 调用某个扩展库中的某个函数

在调用python函数后,pyversion命令运行后,isloaded项变为1:

同样地,还可以调用自己编写的py文件中的函数以及调用某个类中的某个成员函数,但由于跨语言,存在自己编写的函数的返回值无法返回至MATLAB中,以及更新py文件后需要清除缓存等问题。

在MATLAB中运行python脚本

本方法需要将Anaconda中python的路径添加至环境变量

由于跨语言编程互相调用较为繁琐,需要对现有代码进行大量改动,因此,若已有python脚本,则无需执行较为繁琐的MATLAB调用python函数等操作,可使用MATLAB中的函数system()实现,如:

command = 'python test.py';
[status,cmdout] = system(command,'-echo');

其原理为:函数system()启动新的cmd/shell进程->执行cmd命令->退出进程->返回到 MATLAB 进程,有三种使用方法:

status = system(command)
[status,cmdout] = system(command)
[status,cmdout] = system(command,'-echo')    % 在MATLAB命令行窗口显示cmd命令行输出

command—准备在cmd中运行的命令;
status—命令执行状态,当命令成功执行时,status 为 0,否则,status 为非零整数。
cmdout—命令执行后的输出信息。

函数system()启动的cmd窗口的默认路径就是m文件所在的路径

如果希望command执行后立即返回m脚本继续执行后续代码,则可以在command最后加上&:

command = 'python test.py &';
[status,cmdout] = system(command,'-echo');

 如图所示,在运行python脚本后,isloaded并没有变为1,说明与第一种方法不同,没有使用MATLAB调用python函数,而是通过cmd运行了py脚本。

这种方法免去了繁琐的设置安装过程,也无需对应MATLAB版本与python版本,更无需在安装其他python版本后重新安装扩展库。

但此种方法也面临着变量等数据传递的问题,建议使用文件进行数据传递。

因此,两种方法各有优劣之处,应就具体使用情况具体选择采用。

附:添加环境变量方法

若在安装Anaconda时未勾选添加至环境变量,则直接在cmd中使用python命令会报错,需要将python路径添加至环境变量

右键“此电脑”点击属性->高级系统设置->环境变量->系统变量中的PATH->新建添加如下路径:

 对应自己anaconda安装位置添加路径,保存后即可。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值