Python如何调用MATLAB!!!附有实例和详细讲解

1,376 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Python和MATLAB版本

Python调用MATLAB的脚本或者函数,只支持少数的Python版本, 2.7、 3.5、3.6.

如何知道自己的Python版本?

Win+R 输入 cmd ,输入

python

即可。 在这里插入图片描述 前面是版本,为Python3.6.6 ,后面是位数,64位,要保证MATLAB与Python都是同等位数,即Python是64位的,MATLAB也必须是64位的,32位的同理。

如果Python版本过高怎么办?

方法1: 网上找到版本降低的方法,就可以了,很多文章都有写。(注意python环境和Anaconda的步骤不一样)

方法2:个人觉得是比较彻底、好用的方法!!! 卸载!!重装!!! 打开软件管家 卸载 搜“python” 卸载出现的python版本 然后下载新的python3.6即可

MATLAB的选择版本

我两个电脑,一个是2018版本的,一个是2020版本的,目前来说都可以连接,网上一些资料显示2017也可以。

Python调用MATLAB的过程

1、到MATLAB的安装目录,实在找不到,就打开MATLAB软件,输入:

matlabroot

返回下图效果:

在这里插入图片描述

表明,matlab安装在D盘的MATLAB2020文件夹内。

2、依此找到该文件夹下的extern>engines>python,如下: 在这里插入图片描述

可以看到,文件夹内有一个setup.py的文件。

3、然后,我们在2中红框的位置输入cmd,然后按Enter键,进入DOS窗口。 在这里插入图片描述

4、出来下图窗口:

在这里插入图片描述

5、输入:

python setup.py install

效果如下

在这里插入图片描述

如果安装过了,再重复步骤5,效果应该是如下:

在这里插入图片描述 这时,正常来说就安装好了!!!

如何测试python 是否可以调用MATLAB程序

在同一个(必须是同一个)文件夹下,新建两个程序文件,一个是.py的,一个是.m的。 .m文件代码:

function x=myls(A,B)
a = double(A)
b = double(B)
 x = a\b;
end 

如图:

在这里插入图片描述

.py文件代码:

import matlab
import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.myls(4,2)
print(t)

如图: 在这里插入图片描述

上式是调用matlab的函数如myls的。

如何调用MATLAB文件呢,让某个.m文件自己运行?

在这里插入图片描述

如图,Python调用matlab中的mainTest.m文件,直接运行mainTest.m文件。将

t = eng.myls(4,2)  #调用函数的(参数1,参数2)
t = eng.mainTest(nargout=0) #直接运行的话(参数=0)

运行效果:

在这里插入图片描述

问题1:每次运行都会很慢

因为要读取matlab的环境,所以每次运行都要等好久,如果大佬们有什么可以优化速度的方法,也请告知告知我!!!

问题2:Pycharm运行出现:No module named matlab

我用pycharm打开一个测试程序显示“no module named matlab”,可以打开setting,去解释器中安装matlab,但是我的没有,只有“r-matlab ”,我安装了也不行。

解决办法

我直接用Python打开程序,可以运行。就是下图这玩意: 在这里插入图片描述

如此,Python调用MATLAB的入坑出坑方法就算有了个总结了。

参考连接

blog.csdn.net/qq_28773183…

blog.csdn.net/sunny_xsc19…