python调用matlab的.m函数并获取返回参数

1.说明及matlab脚本安装

在日常的科研、学习中,经常会验证某些算法的实际效果,但是有时别人的一些验证算法是用matlab编写,而自己的程序则是使用python编写,这会给一些算法的比较方面带来问题,于是本篇博客为python调用matlab中的.m函数,并返回.m函数返回的系数矩阵。

Step 1.前提条件

1.需要调用的.m函数可以在matlab上成功运行

Step 2.为python环境安装matlab插件

步骤1:找到matlab安装路径下的该文件夹
在这里插入图片描述
在自己电脑按照实际情况找到extern-----engines------python路径下

步骤2:在该路径下进入cmd终端
在这里插入图片描述
在图中cmd的位置输入cmd,进入终端如下所示:
成功以后如下图所示:
在这里插入图片描述

Step 3.选择自己所要使用的python环境

我这里使用的anaconda配置的虚拟环境,我需要使用py361虚拟环境,所以就输入命令activate py361用于激活该环境。
在这里插入图片描述

Step 4.安装matlab脚本

在如上环境下输入命令python setup.py install
在这里插入图片描述
安装结果:
在这里插入图片描述
出现如上即表示安装成功了。

2.python程序如何调用matlab的.m函数并获得返回数据

1.包的引入

import matlab.engine

2.python调用matlab函数实际操作

#Step 1:首先启动matlab(非界面)
engine = matlab.engine.start_matlab()#启动matlab

#Step 2:将传入参数转为list,注意:matlab不接收numpy数组
filename = filename.tolist()

#STep 3:调用对应.m函数,并得到返回结果
gfccs = engine.getgfcc1(filename) #因为matlab没有numpy所以其返回的结果为list cell形式
gfccs = np.array(gfccs)  # 所以再需要将其转为numpy形式的数组

#Step 4:后续操作
这里继续进行后续内容的开发即可,~~

注意事项

1.上边的engine.getgfcc1()命令是具体的调用matlab函数命令,其中getgfcc1()函数为对应的getgfcc1.m文件,filename为传入的文件名

2.matlab的getgfcc1.m文件和对应的python文件在同一个文件路径下

3.如果调用的函数内又调用了其他的函数,建议将其他函数也一并放在getgfcc1.m的函数内容后边,如下所示:

在这里插入图片描述

建议

有时matlab函数其输入的参数很复杂,可能也会出现其他传入参数的错误,这里写一下我自己在摸索过程中的建议吧:
1.如果传入参数过多导致某些参数在python中传入matlab报错,建议手动修改对应的.m文件,尽量减少参数的传入,比如我这里之前getgfcc1.m需要传入较多参数,后来经过手动修改,现在只需要输入一个文件名字即可了。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王延凯的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值