簡體   English   中英

從matlab調用python

[英]Calling python from matlab

我正在使用 matlab 2016b 並且很高興看到 Matlab 中有一些 python 支持( https://uk.mathworks.com/help/matlab/matlab_external/call-python-from-matlab.html

我想知道是否有辦法將用戶設計的 python 類公開給 Matlab。 所以,假設我有一個 python 類:

class MyPythonClass(object):
    def __init__(self):
        self.value = 5

    def set_value(self, v):
        self.value = v

在較新版本的 Matlab 中,這個簡單的 Python 類能否以某種方式暴露給 Matlab? 我看到了 python 支持,但沒有提到任何 matlab 到 python 橋。

是的! 我同意該部分的文檔可能會稍微好一點,但無論如何。 請注意,自 MATLAB R2014b 以來,Python 支持已可用。 所以,首先你應該檢查 Python 是否可用並且你安裝了正確的版本:

pyversion

接下來,創建一個包含您的測試類的 Python 文件/模塊:

# MyTestModule.py
class MyPythonClass(object):
    def __init__(self):
        self.value = 5

    def set_value(self, v):
        self.value = v

非常重要的一步:我們必須將當前的 MATLAB 路徑添加到 Python 路徑中,這樣 Python 才能找到您的模塊。 這是記錄在這里

if count(py.sys.path,'') == 0
    insert(py.sys.path,int32(0),'');
end

現在我們准備好我們自己的 Python 類了! 所有 Python 命令都以py.開頭py. ,所以我們用

c = py.MyTestModule.MyPythonClass

這表現了

c = 
  Python MyPythonClass with properties:
    value: 5
    <MyTestModule.MyPythonClass object at 0x12b23cbd0>

並且我們的 Python 類可以像“普通”MATLAB 類一樣使用:

>> c.set_value(10)
>> c.value
ans =
    10
>> set_value(c,5)
>> c.value
ans =
    5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM