Matlab下调用Python接口

MATLAB 到 C 语言程序的转换可以由两种途径完成,其一是 MATLAB 自己提供的 C 语言翻译程序 mcc, 另一种是原第 3 方公司 MathTools 开发的 MATCOM。后者出现较早,功能远比 MATLAB 自己的翻译程序强大,可以直接将Matlab脚本转换为C/C++代码,MathWorks感受到了威胁,找人家谈判,花巨资收购了MathTools 公司,并已将其开发技术融于MATLAB 中。最后Matlab又推出了C/C++接口,这也是适应市场需要。这不,不知道什么时候起,Matlab也开始支持Python调用了,并且Python也可以调用Matlab。这是大势所趋啊,虽然目前的Matlab(本人用的Matlab2015b)对Python接口的支持还不是很完美,只支持一部分,但这也是Matlab担心被Python取代,担心被边缘化而做出的改进,相信以后会有更多改进。下面介绍一下Matlab调用Python接口的一些示例。

首先说一下本人的环境配置,WIN7 64位系统,Matlab2015b, Anaconda4集成的Python3.6,亲测不需要在Matlab下的Set Path下配置Python的路径,Matlab会直接搜索Python安装路径,即使你添加了路径,有些Python库,如果Matlab不支持,自然无法调用。下面来看一些具体的示例:

1. Matlab对Python下OpenCV库的调用



这是在默认你已经成功安装了Python下OpenCV的情况下,Matlab调用的结果。

下面看一对应的Python代码:

import cv2
img=cv2.imread('Lee02.png')
cv2.imshow('Img',img)

有人可能会想,可不可以在Matlab直接 import cv2或 import py.cv2。前者目前没有,后者针对OpenCV的也没有,但是有类似后者的语法:



S = py.textwrap.wrap('This is a string');
import py.textwrap.wrap
S = wrap('This is a string');
clear import

Matlab在对字符串的处理方面不如Python,所以Matlab对这方面Python接口的支持就非常好,而对于自己家有的,就支持不那么好了,当然是担心被取代了。 上述代码中的 clear import一定要有,当你使用了 import语句的时候,否则它会覆盖Matlab内置的对应函数或类。

2. 创建Python对象

创建Python对象的语法如下:

pyObj = py.modulename.ClassName(varargin)
其中 varargin表示送入Python构造器的__init__方法的列表参数。关于构造函数的相关帮助文档示例如下:

py.help('textwrap.TextWrapper.__init__')
3. 调用自定义Python模块

自定义Python模块如下:

# mymod.py
"""Python module demonstrates passing MATLAB types to Python functions"""
def search(words):
    """Return list of words containing 'son'"""
    newlist = [w for w in words if 'son' in w]
    return newlist

def theend(words):
    """Append 'The End' to list of words"""
    words.append('The End')
    return words
从Matlab命令行窗口把该模块加入到Python搜索路径:

if count(py.sys.path,'') == 0
    insert(py.sys.path,int32(0),'');
end
调用mymod.py模块有一个输入参数,现在在Matlab下创建一个输入参数:

N = py.list({'Jones','Johnson','James'})

在Matlab下调用这个函数的具体语法如下:

names = py.mymod.search(N)

完整运行结果如下:



还有更多功能,请参阅Matlab官方文档。












参考:

1. MATLAB与C语言的接口

2. MATLAB中调用Python



  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB 的 "Python" 接口可以让用户在 MATLAB调用 Python 代码和库。使用 "Python" 接口需要先安装 Python 并配置 MATLABPython 环境。以下是使用 MATLAB 的 "Python" 接口的一些基本步骤: 1. 安装 PythonMATLAB 中使用 "Python" 接口需要先安装 Python。可以从 Python 官网(https://www.python.org/downloads/)下载安装包并安装。 2. 配置 MATLABPython 环境 在 MATLAB 中使用 "Python" 接口需要将 MATLABPython 环境配置为已安装的 Python 版本。可以使用以下命令查看当前 Python 版本: ``` pyversion ``` 如果当前版本不是已安装的 Python 版本,可以使用以下命令设置 MATLABPython 环境: ``` pyversion /path/to/python ``` 其中,"/path/to/python" 是 Python 安装路径。 3. 打开 "Python" 终端 在 MATLAB 命令窗口中输入以下命令打开 "Python" 终端: ``` py ``` 打开 "Python" 终端后就可以在其中输入 Python 代码并执行。 4. 调用 Python 库 在 "Python" 终端中可以使用 "import" 命令导入 Python 库,并使用 "py." 前缀调用其中的函数。例如,导入 NumPy 库并使用其中的函数可以使用以下命令: ``` import numpy as np a = py.numpy.array([1,2,3]) b = py.numpy.sqrt(a) ``` 在以上代码中,"py." 前缀用于调用 NumPy 库中的函数,而不是调用 MATLAB 中的函数。 需要注意的是,使用 "Python" 终端时需要先将当前工作目录切换到 MATLAB 工作目录下,否则可能会导致文件读取错误等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值