Используйте MATLAB Указателя Объектов в Python

В этом примере показано, как создать объект из 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 в функции она действительна только в возможности функции.

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте