Да.Подобное обращение - это нормальное поведение свойства в объекте Matlab.Вы можете просто выставить свойство для чтения вместо того, чтобы сделать его полностью private
.
classdef SomeClass < handle
properties (SetAccess=private)
x
end
methods
function obj = SomeClass(x)
obj.x = x;
end
end
end
Тогда вы можете обращаться к нему как к полю в структуре.
>> sc = SomeClass(1:7);
>> sc.x(5)
ans =
5
>>
Нет необходимостив Matlab, чтобы всегда создавать свои собственные функции доступа, как в Java.Вы можете независимо управлять доступом для чтения и записи к свойству, используя атрибуты для него.Если вам нужна более сложная логика доступа к свойствам, вы можете определить методы получения и установки с использованием специального синтаксиса function out = get.x(obj)
, и их поведение будет применяться к доступу к свойствам, выполненному с синтаксисом obj.x
.