在 Python 中使用 MATLAB 句柄对象
此示例说明如何从 MATLAB® 句柄类创建对象,并在 Python® 中调用其方法。
在当前文件夹中,在名为 Triangle.m
的文件中创建一个 MATLAB 句柄类。
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
方法更改高度。如果您的 MATLAB 句柄类定义了属性的 get 和 set 方法,则无需使用 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