[英]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.