[Python+MATLAB] 在Python中使用MATLAB (持续更新中)


使用Python能使用MATLAB的函数吗?

答案是可以的!

The MATLAB Engine API for Python provides a package for Python to call MATLAB as a computational engine. (官方网址:Calling MATLAB from Python

这真是一个人民群众喜闻乐见的好事情!

至于为啥要在Python里调用MATLAB。这可真是我的血泪史了。

Python的3D图的绘制还是逊于MATLAB,最常用的matplotlib没有3D引擎!如果要画3D图(比如绘制三维方向图quiver3D),很多时候都要用到 mayavi ,而且这个函数库还有非常严格的版本的依赖项的要求。有一点没哄好,直接就罢工了。

另外,MATLAB在工程计算和工程仿真上,比Python强的不是一星半点。

在Python中安装MATLAB引擎

官方介绍
个人介绍

首先要知道两个路径:

  • Python的interpreter的位置。

    我用的Anaconda的Python.exe,所以对应的库要安装在该路径下。

  • MATLAB的安装路径。

    要在这里找到setup.py。

首先在MATLAB安装路径下找到setup.py,我的路径是E:\MATLAB R2019b\extern\engines\python

在这里插入图片描述

打开Anaconda Prompt(使用Anaconda Prompt是直接安装到Anaconda的环境下),切换路径到该文件夹,执行python setup.py install

(使用pip要麻烦一点,不推荐)

在这里插入图片描述

结果演示

然后随便找个代码跑一下(选自https://blog.csdn.net/wkk15903468980/article/details/79196382

import matlab
import matlab.engine
import os
import time
import numpy as np

eng=matlab.engine.start_matlab()
mat=eng.fspecial('gaussian',matlab.double([100,100]),3.0)
eng.mesh(mat)

#show from numpy
mat=np.ones([100,100])
mat2=mat.tolist()
mat3=matlab.double(initializer=mat2)
eng.mesh(mat3)
os.system('pause')

结果如图:

在这里插入图片描述

常见用法

python调用matlab API 汇总

后续有必要的话,会单独整理出常见用法的小Demo。

一些tips:

  1. (待验证)在使用figure()函数时发现一个小区别,在matlab中写为figure(1); 在python中必须写为eng.figure(1.0),否则会报错:matlab.engine.MatlabExecutionError: First argument must be a figure object or a positive Integer. 按照这句话应该是说第一个参数必须是figure object或者正的integer,然而实际是得用1.0这个double型才能跑。https://blog.csdn.net/wkk15903468980/article/details/79196382
  2. ……
  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值