我正在使用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桥。
答案 0 :(得分:2)
是的,确定!我同意该部分的文档可能略胜一筹,但无论如何。请注意,自MATLAB R2014b起,Python支持已经可用。所以,首先你要检查Python是否可用,并且你安装了正确的版本:
select * from yourtable where
(DAYNAME(start_date) = 'Saturday' or DAYNAME(start_date) = 'Sunday') and
(DAYNAME(end_date) = 'Saturday' or DAYNAME(end_date) = 'Sunday');
接下来,创建一个包含测试类的Python文件/模块:
pyversion
非常重要的一步:我们必须将当前的MATLAB路径添加到Python路径中,以便Python可以找到您的模块。记录在案here:
# MyTestModule.py
class MyPythonClass(object):
def __init__(self):
self.value = 5
def set_value(self, v):
self.value = v
现在我们已经准备好了自己的Python类!所有Python命令都以if count(py.sys.path,'') == 0
insert(py.sys.path,int32(0),'');
end
开头,因此我们使用
py.
显示
c = py.MyTestModule.MyPythonClass
我们的Python类可以像“普通”MATLAB类一样使用:
c =
Python MyPythonClass with properties:
value: 5
<MyTestModule.MyPythonClass object at 0x12b23cbd0>