В этом примере показано, как указать действие, выполняемое при изменении значения настраиваемого свойства во время моделирования.
processTunedPropertiesImpl метод полезен для управления действиями по предотвращению дублирования. Во многих случаях изменение одного из нескольких взаимозависимых свойств вызывает действие. С помощью processTunedPropertiesImpl можно управлять тем, когда это действие выполняется, чтобы оно не повторялось без необходимости.
Этот пример processTunedPropertiesImpl вызывает pLookupTable регенерируется, если NumNotes или MiddleC изменения свойств.
methods (Access = protected) function processTunedPropertiesImpl(obj) propChange = isChangedProperty(obj,'NumNotes')||... isChangedProperty(obj,'MiddleC') if propChange obj.pLookupTable = obj.MiddleC *... (1+log(1:obj.NumNotes)/log(12)); end endend
classdef TuningFork < matlab.System % TuningFork Illustrate the processing of tuned parameters % properties MiddleC = 440 NumNotes = 12 end properties (Access = private) pLookupTable end methods (Access = protected) function resetImpl(obj) obj.MiddleC = 440; obj.pLookupTable = obj.MiddleC * ... (1+log(1:obj.NumNotes)/log(12)); end function hz = stepImpl(obj,noteShift) % A noteShift value of 1 corresponds to obj.MiddleC hz = obj.pLookupTable(noteShift); end function processTunedPropertiesImpl(obj) propChange = isChangedProperty(obj,'NumNotes')||... isChangedProperty(obj,'MiddleC') if propChange obj.pLookupTable = obj.MiddleC *... (1+log(1:obj.NumNotes)/log(12)); end end end