Main Content

get_param

パラメーターの名前と値の取得

説明

ParamValue = get_param(Object,Parameter) は指定したモデルまたはブロック オブジェクトに対して指定したパラメーターの名前または値を返します。事前に Simulink® モデルを開くか読み込んでおきます。

ヒント

同じブロックに対する get_param を複数回呼び出す場合、数値ハンドルを使用する方がブロックの絶対パスを使用するよりも効率的にブロックを指定できます。getSimulinkBlockHandle を使用してブロック ハンドルを取得します。

パラメーター名については、以下を参照してください。

すべて折りたたむ

vdp モデルを読み込みます。

load_system('vdp');

Expression ブロック パラメーターの値を取得します。

BlockParameterValue = get_param('vdp/Mu','Multiplication')
BlockParameterValue =

    'Element-wise(K.*u)'

SolverType モデル パラメーターの値を取得します。

SolverType = get_param('vdp','SolverType')
SolverType =
   Variable-step

Simulink ルート パラメーター名およびモデル パラメーター名と異なる名前を探してグローバル パラメーターの名前のリストを取得します。

RootParameterNames = fieldnames(get_param(0,'ObjectParameters'));
load_system('vdp')
ModelParameterNames = fieldnames(get_param('vdp','ObjectParameters'));
GlobalParameterNames = setdiff(RootParameterNames,ModelParameterNames)
GlobalParameterNames =
          'AutoSaveOptions'
          'CacheFolder'
          'CallbackTracing'
          'CharacterEncoding'
                 . . .
          'CurrentSystem'

グローバル パラメーターの値を取得します

GlobalParameterValue = get_param(0,'CurrentSystem')
GlobalParameterValue =
          vdp

vdp モデルのモデル パラメーターのリストを取得します。

load_system('vdp')
ModelParameterNames = get_param('vdp','ObjectParameters')
ModelParameterNames =
              Name: [1x1 struct]
               Tag: [1x1 struct]
       Description: [1x1 struct]
              Type: [1x1 struct]
            Parent: [1x1 struct]
            Handle: [1x1 struct]
                       . . .
           Version: [1x1 struct]

vdp モデルの ModelVersion モデル パラメーターの現在の値を取得します。

ModelParameterValue = get_param('vdp','ModelVersion')
ModelParameterValue =
          1.6

vdp モデルのブロックのパスと名前のリストを取得します。

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths =

  14×1 cell array

    {'vdp/Constant'            }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Square'              }
    {'vdp/Sum'                 }
    {'vdp/Sum1'                }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

Mu ブロックのブロック ダイアログ パラメーターのリストを取得します。

BlockDialogParameters = get_param('vdp/Mu','DialogParameters')
BlockDialogParameters = 

  struct with fields:

                         Gain: [1×1 struct]
               Multiplication: [1×1 struct]
                     ParamMin: [1×1 struct]
                     ParamMax: [1×1 struct]
             ParamDataTypeStr: [1×1 struct]
                       OutMin: [1×1 struct]
                       OutMax: [1×1 struct]
               OutDataTypeStr: [1×1 struct]
                    LockScale: [1×1 struct]
                      RndMeth: [1×1 struct]
    SaturateOnIntegerOverflow: [1×1 struct]
                   SampleTime: [1×1 struct]

Multiplication ブロック パラメーターの値を取得します。

BlockParameterValue = get_param('vdp/Mu','Multiplication')
BlockParameterValue =
    'Element-wise(K.*u)'

同じブロックに対する get_param を複数回呼び出す場合、ブロック ハンドルを使用する方が、ブロックの絶対パスを文字ベクトルとして、たとえば 'vdp/Mu' のように指定するよりも効率的です。

ブロック ハンドルはそれ以降の get_param または set_param の呼び出しで使用できます。ハンドルを調べると、double が含まれていることがわかります。通常 MATLAB® に表示されるよりも多くの桁を指定しなければならないため、ハンドルの数値 (5.007 など) を単独で使用しないでください。代わりにハンドルを変数に代入し、その変数名を使用してブロックを指定します。

必要に応じて getSimulinkBlockHandle を使用して vdp モデルを読み込み (true を指定することにより)、Mu ブロックのハンドルを取得します。

mublockhandle = getSimulinkBlockHandle('vdp/Mu',true);

get_param を指定してブロック ハンドルを使用し、Expr ブロック パラメーターの値を取得します。

BlockParameterValue = get_param(mublockhandle,'Multiplication')
BlockParameterValue =
    'Element-wise(K.*u)'

vdp モデルのブロックのパスと名前のリストを取得します。

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths =

  14×1 cell array

    {'vdp/Constant'            }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Square'              }
    {'vdp/Sum'                 }
    {'vdp/Sum1'                }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

vdp モデルの各ブロックの BlockType パラメーターの値を取得します。

BlockTypes = get_param(BlockPaths,'BlockType')
BlockTypes =

  14×1 cell array

    {'Constant'  }
    {'SubSystem' }
    {'SubSystem' }
    {'Gain'      }
    {'Mux'       }
    {'Product'   }
    {'Scope'     }
    {'Math'      }
    {'Sum'       }
    {'Sum'       }
    {'Integrator'}
    {'Integrator'}
    {'Outport'   }
    {'Outport'   }

入力引数

すべて折りたたむ

モデル、ブロック、ルートのハンドルまたは名前。数値ハンドル、文字ベクトル、または複数のブロック用の文字ベクトルの cell 配列として指定します。0 を指定するとルートの意味になります。数値ハンドルはスカラーでなければなりません。また、ラインや端子のパラメーターを取得することはできますが、それらを指定するには数値ハンドルを使用しなければなりません。

ヒント

同じブロックに対する get_param を複数回呼び出す場合、数値ハンドルを使用する方がブロックの絶対パスを使用するよりも効率的にブロックを指定できます。getSimulinkBlockHandle を使用してブロック ハンドルを取得します。通常 MATLAB に表示されるよりも多くの桁を指定しなければならないため、ハンドルの数値 (5.007 など) を単独で使用しないでください。ハンドルを変数に代入し、その変数名を使用してブロックを指定します。

0 を指定して、現在の Simulink セッションのグローバル パラメーターおよびモデル パラメーターなどの、ルート パラメーター名を取得します。

  • グローバル パラメーターにはエディターの基本設定と Simulink Coder™ パラメーターが含まれます。

  • モデル パラメーターには、コンフィギュレーション パラメーター、Simulink Coder パラメーターおよび Simulink Code Inspector™ パラメーターが含まれます。

例: 'vdp/Mu'

モデル、ブロック、ルートのパラメーター。文字ベクトルとして指定します。0 を指定するとルートの意味になります。次の表は特殊なケースを示します。

指定したパラメーター結果
'ObjectParameters'

指定したオブジェクト (モデル、ブロックまたはルート) のパラメーター名を構造体の個別のフィールドとする構造体配列を返します。

'DialogParameters'

ブロックのダイアログ ボックス パラメーターの名前を構造体内の個別のフィールドとする構造体配列を返します。ブロックにマスクがある場合は代わりにマスク パラメーターを返します。

'BlockType' などのパラメーター名。任意のモデルまたはブロック パラメーター、ブロックのダイアログ ボックス パラメーターを指定します。

指定したモデルまたはブロック パラメーターの値を返します。

複数のブロックを cell 配列として指定した場合は、すべてのブロックに共通の指定したパラメーターの値を cell 配列で返します。cell 配列で指定したすべてのブロックにそのパラメーターが含まれていなければなりません。そうでない場合、関数はエラーを返します。

例: 'ObjectParameters'

データ型: char

出力引数

すべて折りたたむ

指定したモデル、ブロック、ルートに対して指定したパラメーターの名前または値。複数のオブジェクトを指定する場合、出力はオブジェクトの cell 配列になります。次の表は特殊なケースを示します。

指定したパラメーター返される ParamValue
'ObjectParameters'

指定したオブジェクト (モデル、ブロックまたはルート) のパラメーター名を構造体内の個別のフィールドとする構造体配列。

'DialogParameters'

ブロックのダイアログ ボックス パラメーターの名前を構造体内の個別のフィールドとする構造体配列。ブロックにマスクがある場合は代わりにマスク パラメーターを返します。

'BlockType' などのパラメーター名

指定したモデルまたはブロック パラメーターの値。複数のブロックが cell 配列として指定された場合は、すべてのブロックに共通の指定したパラメーターの値を cell 配列で返します。

get_param(0,'ObjectParameters') を指定してルート パラメーターを取得すると、出力 ParamValue はルート パラメーター名を構造体内の個別のフィールドとする構造体配列になります。各パラメーター フィールドは次のフィールドを含む構造体です。

  • Type — パラメーターのタイプ値。'boolean''string''int''real''point''rectangle''matrix''enum''ports''list'

  • Enum — 'enum' のパラメーターのタイプにのみ適用される列挙型文字ベクトル値の cell 配列

  • Attributes — パラメーターの属性を定義する文字ベクトルの cell 配列。次の値を使用できます。'read-write''read-only''read-only-if-compiled''write-only''dont-eval' 'always-save''never-save''nondirty''simulation'

R2006a より前に導入