这个例子展示了如何从MATLAB中创建一个对象®句柄类并在Python中调用它的方法®.
在当前文件夹中,创建一个MATLAB句柄类的文件名为Triangle.m
.
classdef三角形<处理属性(SetAccess = private) Base = 0;身高= 0;结束方法函数TR = Triangle(b,h);TR.Height = h;结束函数a = 0.5 .* TR. base .* TR. height;结束函数setBase(TR,b) TR. base = b;结束函数setHeight(TR,h) TR. height = h;结束结束结束
启动Python。创建一个三角形
处理对象并调用它区域
方法与引擎。传递句柄对象作为第一个位置参数。
导入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。工作空间["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
请注意
三角形
类对象tr
,是对象的句柄,而不是对象的副本。如果您创建tr
在函数中,它只在函数的作用域内有效。
matlab.engine.FutureResult
|matlab.engine.MatlabEngine