2016-10-06 4 views
2

Я использую MatLab 2016b и был рад видеть, что есть некоторые питон поддержка в Matlab (https://uk.mathworks.com/help/matlab/matlab_external/call-python-from-matlab.html)Вызов питон из MATLAB

мне было интересно, если есть способ, чтобы выставить пользователь спроектированных классов питона в Matlab. Так, скажем, у меня есть класс Python:

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

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

Может ли это простой класс питона быть каким-то образом подвергается воздействию Matlab в новых версиях Matlab? Я вижу поддержку python, но не упоминаю о каком-либо matlab для моста python.

ответ

1

Да, конечно! Я согласен с тем, что документация может быть немного лучше в этой части, но в любом случае. Обратите внимание, что поддержка Python доступна с MATLAB R2014b. Итак, сначала вы должны проверить, что 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 может найти ваш модуль. Это подтверждается here:

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

Теперь мы готовы к нашему классу Python! Все команды Python начинаются с 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 
+0

Это потрясающе! – Luca

Смежные вопросы