IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 在MATLAB中调用 Python -> 正文阅读

[人工智能]在MATLAB中调用 Python

在MATLAB中调用 Python

您可以通过将 py. 前缀添加到 Python 名称,直接从 MATLAB 访问 Python 库。要调用 Python 标准库中的内容,请在 Python 函数或类名称的前面添加 py.。要调用可用模块中的内容,请在后跟 Python 函数或类名称的 Python 模块名称前面添加 py.。例如:

py.list({'This','is a','list'})      % Calls built-in function list
py.textwrap.wrap('This is a string') % Calls wrap function in module textwrap

无需导入模块便可使用它们。但您可以将 Python 名称导入到您的 MATLAB 函数中,方法与导入 MATLAB 包中的内容的方法相同。

MATLAB 中的 Python 库 - MATLAB & Simulink - MathWorks 中国



检查环境

使用 pyversion 检查Matlab能否调用Python:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVFldTSz-1646290090554)(C:\Users\14158\AppData\Roaming\Typora\typora-user-images\1646139574963.png)]

其中isloaded表示是否已加载Python,如果执行了Python语句或调用了Python模块,isloaded就变为1:

如果Matlab没有找到Python,则返回为空,这主要是由于Python路径未添加到环境变量所致

解决办法:将Python安装目录添加到环境变量,或者直接指定Python可执行文件的路径



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVVZ7Hu3-1646290090556)(C:\Users\14158\AppData\Roaming\Typora\typora-user-images\1646139701590.png)]

pyenv 也可以检测验证是否安装了受支持的版本



直接执行 python 语句:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJE7lsoy-1646290090556)(C:\Users\14158\AppData\Roaming\Typora\typora-user-images\1646202549839.png)]



函数调用

点击左上角的新建脚本,输入以下代码:

# myfun.py
def test():
    print('Hello, Matlab!')

def add(a, b):
    c = a + b
    return c

将文件保存命名为:myfun.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LkhKgf06-1646290090557)(C:\Users\14158\AppData\Roaming\Typora\typora-user-images\1646202970021.png)]

注意:如果修改了myfun.py,Matlab不会立即使用新的代码,需要重载Python模块

% 重载Python模块
clear classes
obj = py.importlib.import_module('myfun');
py.importlib.reload(obj);

执行上面语句后,就可以调用修改过的Python代码了。



类调用

在 myfun.py 中添加代码:

class myclass():
    def __init__(self):
        self.count = 0
    def add(self):
        self.count = self.count + 1
        print('count = ', self.count)

在Matlab中执行:(注意此时代码已经被修改,需要重新加载python模块)

mycalss = py.myfun.myclass;
for i = 1:5
    mycalss.add()
end

输出结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhUTJJys-1646290090558)(C:\Users\14158\AppData\Roaming\Typora\typora-user-images\1646287527165.png)]



Python 帮助文档

您可以在 MATLAB 中显示 Python 函数的帮助文本。例如:

py.help('list.append')
Help on method_descriptor in list:

list.append = append(...)
    L.append(object) -> None -- append object to end

键入 py. 时的 Tab 键自动填充不显示可用的 Python 功能。有关详细信息,请参阅Python 函数的帮助



创建数据

下表显示用于创建 listtupledict 类型的命令。左侧的命令从 Python 解释器运行。右侧的命令是 MATLAB 命令。

Python list - []MATLAB py.list
>>> ['Robert', 'Mary', 'Joseph']>> py.list({'Robert','Mary','Joseph'})
>>> [[1,2],[3,4]]>> py.list({py.list([1,2]),py.list([3,4])})
Python tuple - ()MATLAB py.tuple
>>> ('Robert', 19, 'Biology')>> py.tuple({'Robert',19,'Biology'})
Python dict - {}MATLAB py.dict
>>> {'Robert': 357, 'Joe': 391, 'Mary': 229}>> py.dict(pyargs(...'Robert',357,'Mary',229,'Joe',391)) 有关传递关键字参数的信息,请参阅 pyargs


访问python模块

我们可以在 MATLAB 中使用自己的 Python 代码和第三方模块。

内容必须位于 Python 路径中。安装第三方模块会将内容放在 Python 路径中。

如果我们创建自己的模块,则由我们负责将它们放到路径中。

调用用户定义的 Python 模块

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:33:38  更:2022-03-04 15:35:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:26:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码