【发布时间】:2020-04-01 09:50:46
【问题描述】:
我正在重构一些 MATLAB 遗留软件,这些软件涉及在广泛的测试中获得的数据。我正在尝试创建一个包含每个单独频道的数据以及一些额外信息(例如其物理单位)的类。
只是为了把这个问题放在这里,这个类可能是这样的:
classdef Channel < handle
properties (Access = 'private')
prvValue, prvUnits;
end
properties (Dependent)
value, units;
end
methods
function this = Channel(value, units)
this.value = value;
this.units = units;
end
function set.value(this, value)
this.prvValue = value;
end
function out = get.value(this)
out = this.prvValue;
end
function set.units(this, units)
this.prvUnits = units;
end
function out = get.units(this)
out = this.prvUnits;
end
end
end
您可以使用以下内容创建此类的对象:
> ch1 = Channel([1:10], 'm');
并通过以下方式访问其依赖属性:
>> ch1.value
ans =
1 2 3 4 5 6 7 8 9 10
>> ch1.units
ans =
'm'
这仍然需要将访问数据的旧代码中的每一行从“ch1”更改为“ch1.value”。
现在我的问题是:有没有办法定义一种返回类的特定属性(在本例中为“值”)的“默认获取方法”?换句话说,行为如下:
>> ch1 ans = 1 2 3 4 5 6 7 8 9 10 >> ch1.units ans = 'm'
欢迎任何帮助。非常感谢。
【问题讨论】: