В этом примере показано, как создать объект из класса Handle MATLAB® и вызвать его методы в Python®.
В вашей текущей папке создайте класс Handle 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 метод. Если ваш класс Handle MATLAB задает методы для получения и установки свойств, можно получить доступ к свойствам, не используя рабочее пространство 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