В этом примере показов, как управлять спецификациями входа для системного object™. Можно управлять тем, что происходит при изменении входной спецификации.
Можно также ограничить, может ли изменяться сложность, тип или размер входа во время использования объекта. Какие бы аспекты вы не ограничивали, не могут измениться до тех пор, пока пользователь не вызовет release.
Чтобы изменить алгоритм или свойства системного объекта, когда вход изменяет размер, тип данных или сложность, реализуйте processInputSpecificationChangeImpl способ. Задайте действия, которые необходимо предпринять, когда входная спецификация изменяется между вызовами системного объекта.
В этом примере processInputSpecificationChangeImpl изменяет isComplex свойство, когда любой из входов комплексен.
properties(Access = private)
isComplex (1,1) logical = false;
end
methods (Access = protected)
function processInputSpecificationChangeImpl(obj,input1,input2)
if(isreal(input1) && isreal(input2))
obj.isComplex = false;
else
obj.isComplex = true;
end
end
endЧтобы указать, что сложность, тип и размер входа не могут измениться во время использования Системного объекта, реализуйте isInputComplexityMutableImpl, isInputDataTypeMutableImpl, и isInputSizeMutableImpl методы для возврата false. Если вы хотите ограничить только некоторые аспекты входа Системного объекта, можно включать только один или два из этих методов.
methods (Access = protected) function flag = isInputComplexityMutableImpl(~,~) flag = false; end function flag = isInputSizeDataTypeImpl(~,~) flag = false; end function flag = isInputSizeMutableImpl(~,~) flag = false; end end