Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

調整されたプロパティの処理

この例では、シミュレーション中に調整可能なプロパティの値が変更された場合に実行されるアクションの指定方法を示します。

processTunedPropertiesImplメソッドは重複を回避するようにアクションを管理する場合に役に立ちます。相互依存する複数のプロパティではその多くの場合、1 つの変更がアクションを引き起こします。processTunedPropertiesImplメソッドは、アクションの実行タイミングを制御して不要な繰り返しを回避します。

ルックアップ テーブルの生成タイミングの制御

このprocessTunedPropertiesImplの例では、NumNotesプロパティまたはMiddleCプロパティの変更時にpLookupTableが再生成されします。

methods (Access = protected)functionprocessTunedPropertiesImpl(obj) propChange = isChangedProperty(obj,'NumNotes')||...isChangedProperty(obj,'MiddleC')ifpropChange obj。pLookupTable = obj。MiddleC *...(1+log(1:obj.NumNotes)/log(12));endendend

調整されたプロパティ処理をもつ完全なクラス定義ファイル

classdefTuningFork < matlab.System% TuningFork Illustrate the processing of tuned parameters%propertiesMiddleC = 440 NumNotes = 12endproperties(Access = private) pLookupTableendmethods(Access = protected)functionresetImpl(obj) obj.MiddleC = 440; obj.pLookupTable = obj.MiddleC *...(1+log(1:obj.NumNotes)/log(12));endfunctionhz = stepImpl(obj,noteShift)% A noteShift value of 1 corresponds to obj.MiddleChz = obj.pLookupTable(noteShift);endfunctionprocessTunedPropertiesImpl(obj) propChange = isChangedProperty(obj,'NumNotes')||...isChangedProperty(obj,'MiddleC')ifpropChange obj。pLookupTable = obj。MiddleC *...(1+log(1:obj.NumNotes)/log(12));endendend

参考