В этом примере показано, как создать объект из MATLAB® класс Handle и вызов его методы в 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.MatlabEngine
| matlab.engine.FutureResult