Я нахожусь в процессе рефакторинга некоторого устаревшего программного обеспечения MATLAB с использованием данных, полученных в ходе широкого набора тестов. Я пытаюсь создать класс, который содержит данные каждого отдельного канала, а также некоторую дополнительную информацию (например, его физические единицы).
Просто для того, чтобы разместить этот вопрос здесь, класс может выглядеть так this:
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».
Теперь мой вопрос: есть ли способ определить своего рода «метод get по умолчанию», который возвращает определенное свойство класса (в данном случае «value»)? Другими словами, что-то, что ведет себя так:
>> ch1
ans =
1 2 3 4 5 6 7 8 9 10
>> ch1.units
ans =
'm'
Любая помощь будет приветствоваться. Большое спасибо.