This example shows how to create an object from a MATLAB® handle class and call its methods in Python®.
In your current folder, create a MATLAB handle class in
a file named 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
Start Python. Create a Triangle
handle
object and call its area
method with the engine.
Pass the handle object as the first positional argument.
import matlab.engine eng = matlab.engine.start_matlab() tr = eng.Triangle(5.0,3.0) a = eng.area(tr) print(a)
7.5
Copy tr
to the MATLAB workspace. You
can use eval
to access the properties of a handle
object from the workspace.
eng.workspace["wtr"] = tr b = eng.eval("wtr.Base") print(b)
5.0
Change the height with the setHeight
method.
If your MATLAB handle class defines get and set methods for properties,
you can access properties without using the MATLAB workspace.
eng.setHeight(tr,8.0,nargout=0) a = eng.area(tr) print(a)
20.0
Note
Triangle
class object tr
,
is a handle to the object, not a copy of the object. If you create tr
in
a function, it is only valid within the scope of the function.
matlab.engine.FutureResult
| matlab.engine.MatlabEngine