В этом примере показано, как создать объект из класса дескрипторов MATLAB ® и вызвать его методы в Python ®.
В текущей папке создайте класс дескрипторов MATLAB в файле с именем Triangle.m.
classdef Triangle < handle properties (SetAccess = private) Base = 0; Height = 0; end methods function TR = Triangle(b,h) TR.Base = b; TR.Height = h; end function a = area(TR) a = 0.5 .* TR.Base .* TR.Height; end function setBase(TR,b) TR.Base = b; end function setHeight(TR,h) TR.Height = h; end end end
Запустите Python. Создать Triangle обработать объект и вызвать его area СПОСОБ С ДВИГАТЕЛЕМ. Передайте объект-дескриптор в качестве первого позиционного аргумента.
import matlab.engine eng = matlab.engine.start_matlab() tr = eng.Triangle(5.0,3.0) a = eng.area(tr) print(a)
7.5
Копия tr в рабочую область MATLAB. Вы можете использовать eval для доступа к свойствам объекта-дескриптора из рабочей области.
eng.workspace["wtr"] = tr
b = eng.eval("wtr.Base")
print(b)
5.0
Изменение высоты с помощью setHeight способ. Если класс дескриптора MATLAB определяет методы get и set для свойств, доступ к свойствам можно получить без использования рабочей области MATLAB.
eng.setHeight(tr,8.0,nargout=0) a = eng.area(tr) print(a)
20.0
Примечание
Triangle объект класса tr, является дескриптором объекта, а не копией объекта. При создании tr в функции она действительна только в пределах области действия функции.
matlab.engine.FutureResult | matlab.engine.MatlabEngine