В этом примере показано, как создать объект из 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 задает методы 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