如何在Python中调用Matlab?

检查您的系统是否具有受支持的 Python 版本和 MATLAB R2014b 或更新版本。要检查您的系统上是否已安装 Python,请在操作系统提示符下运行 Python。

1)打开Prompt,输入' cd matlabroot\extern\engines\python' 切换并创建文件夹

输入'python setup.py install' 进行安装。如果提示python版本不对进去下面流程。

2)键入'python –version' 查看python版本。如果版本不符合上一句指令提示,使用conda指令切换python版本。

3)执行命令:conda create --name python34 python=3.4 安装3.4版本

4)执行命令 conda info --envs,从图中我们看到,这里多了一个名字为python34的Python环境.

5)执行命令:python --version,查看当前版本

6)执行命令:activate python34,然后执行命令:python --version,查看是否切换成功.

7)重新执行1)完成安装用于 Python 的 MATLAB 引擎 API。

现在我们想用Spyder来编程,所以需要通过Prompt切换到Spyder(python 3.4)

1)'activate python34' 进入刚才创建的环境。

2)在环境中安装anaconda的库:'conda install anaconda'

3)安装完毕之后键入: 'spyder' 即可进入Spyder(python 3.4)

现在我们可以在Spyder中启动Matlab了

[1]: import matlab.engine

[2]: eng = matlab.engine.start_matlab()

在当前文件夹下创建名为test.m文件,在Python中:

[3]: eng.test(nargout=0) #指定 nargout=0尽管脚本会打印输出,但它不会返回任何输出参数

Matlab中自定义的函数也是可以用Python调用的,打开test.m(只能编写,不能执行),matlab自带函数同理:

>>function a = triarea(b,h)
>>a = 0.5*(b.* h);

回到Spyder:

[4]:ret = eng.triarea(1.0,5.0)
[5]:print(ret) # triarea 函数仅返回一个输出参数,因此无需指定 nargout。
要停止执行 MATLAB 函数,请按 Ctrl+C。控制权将返回给 Python。


程序最后记得退出matlab环境:


[6]:eng.quit()