0

simulink ブロックのプロパティに問題があります。ブロックに「paramName」という名前のパラメーターがあるかどうかを確認する必要があります。このパラメーターがない場合は、追加する必要があります。このために、マスク パラメーターを取得します。

p = Simulink.Mask.get(blockName);

この例は、ヘルプから得たものです。ただし、Simulink は次のエラーを表示します。

未定義の変数 "Simulink" またはクラス "Simulink.Mask.get"

問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

おそらく、プロパティとget_param組み合わせて使用​​する必要があります。たとえば、次のようになります。DialogParameters

block_params = get_param(%block_path%,`DialogParameters`);

出力block_paramsは、その特定のブロックのすべてのパラメーターを含む構造体です。%block_path%問題のブロックへのパスに置き換えるか、現在のブロックに使用しgcbます。のドキュメントページに例がありますget_param

ブロック パラメーターの値と属性を取得する

モデルのサブシステム Inertia内のブロックのブロック パラメーター名をリストします。Requisite Frictionsldemo_clutch

block_params = get_param('sldemo_clutch/Friction Mode Logic/Requisite Friction/Inertia Ratio',... 'DialogParameters') 

ans = 
                                          Gain: [1x1 struct]
                             Multiplication: [1x1 struct]
                                 ParamMin: [1x1 struct]
                                ParamMax: [1x1 struct]
                  ParamDataTypeStr: [1x1 struct]
                                     OutMin: [1x1 struct]
                                    OutMax: [1x1 struct]
                      OutDataTypeStr: [1x1 struct]
                                LockScale: [1x1 struct]
                                  RndMeth: [1x1 struct]
    SaturateOnIntegerOverflow: [1x1 struct]
                             SampleTime: [1x1 struct]
于 2013-09-16T11:42:50.643 に答える