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