matlab - 如何将来自不同类的对象存储在一个数组中并在 MATLAB 中调用相同的函数(定义不同)?
问题描述
我有两个子类:
- 线
- 弧
它们的对象将通过将它们附加到它们的末端来创建路径。这些都有自己的“plotCurve”方法。我想将这些对象存储在一个数组中,例如:
path = [line1,line2,arc1,line3,arc2,arc3,line4,arc4,arc5...];
(我认为“路径”应该是超类“路径”的对象)当我编写类似的代码时;
for i=1:size(path)
path(i).plotCurve;
hold on
end
应该显示结果。我应该能够看到整个路径。(因此,当“Line”对象出现时,“plotCurve”方法应该运行,并且对于 Arc 对象也是如此)。
解决方案
看起来从matlab.mixin.Heterogeneous
允许这种行为的子类化:
classdef Path < matlab.mixin.Heterogeneous
%...
end
classdef Line < Path
%...
end
classdef Arc < Path
%...
end
path = [Line,Line,Arc,Line,Arc,Arc];
figure, hold on
for i=1:numel(path)
path(i).plotCurve;
end
虽然我认为制作单元数组更容易path
,但上面代码中的行为没有区别,除了使用不同的索引:path{i}.plotCurve
。
推荐阅读
- c++ - 如何解释从
图书馆? - python - 如何自动通知用户忘记选择操作?
- hive - GreenPlum SQL 查询转换成 Hive
- java - 我想检查一个数字是否是二进制数或不是十进制数,但它不起作用
- python - 如何在 Python 中以高效的方式从数千个大型 NetCDF 文件中提取数据?
- flutter - 如何将 Navigator Push 添加到 Flutter 按钮小部件?元素类型“Null Function()”不能分配给列表类型“Widget”
- php - Woocommerce 更改运费后重新计算运费税
- html - 如何向 Angular 添加自定义架构?
- python - 如何将显示格式封装在 jupyter 单元格中?
- excel - 为什么文本格式的日期在“转换”为列的预设日期格式之前需要编辑 (F2) 和 [Enter]?