В этом примере показов, как управлять спецификациями входа для системного 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