Main Content

get_param

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

説明

value = get_param(object,parameter) は、object で指定されたターゲット オブジェクトについて、指定されたパラメーター parameter の値 value を返します。ターゲット オブジェクトは、モデル、サブシステム、ライブラリ、ブロック、ライン、端子、またはバス要素端子の要素のいずれかになります。

この関数を呼び出す前に、関連する Simulink® のモデル、サブシステム、またはライブラリを開くか読み込んでおきます。

すべて折りたたむ

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 という名前の Gain ブロックのブロック ダイアログ パラメーターのリストを取得します。

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)'

vdp モデル内の Mu という名前の Gain ブロックのパラメーターの値を取得します。

Mu という名前の Gain ブロックのハンドルを取得するには、関数 getSimulinkBlockHandle を使用します。vdp モデルを読み込むには、true を指定します。

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

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

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

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

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

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

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'   }

get_param でキーワード options を使用して、パラメーター、Simulink オブジェクト、ブロック線図、注釈に対するオプションのリストを取得できます。

マスク パラメーターに対するオプションのリストを取得します。たとえば、マスクされた Gain ブロックにポップアップとコンボ ボックスのパラメーターがあるとします。

get_param('vdp/Mu','options@Multiplication')
ans =

  1×4 cell array

    {'Element-wise(K.*u)'}  
  {'Matrix(K*u)'}    {'Matrix(u*K)'}    {'Matrix(K*u) (u vec…'}

Subsystem ブロックの ShowPortLabels パラメーターなど、ブロック パラメーターに対するオプションのリストを取得します。

get_param(gcb,'options@showportlabels')
ans =
  1×4 cell array
    {'none'}    {'FromPortIcon'}    {'FromPortBlockName'}    {'SignalName'}

関数 get_param でキーワード value を使用して、マスク ブロック パラメーターの評価値にアクセスできます。

たとえば、マスクされた Gain ブロックの edit パラメーターの評価値を取得します。

get_param(gcb,'value@edit')
ans =
     4

評価値を取得するオプションはマスク パラメーターに制限されます。

入力引数

すべて折りたたむ

オブジェクトの名前、パス、ハンドル、またはルート。文字ベクトル、文字ベクトルの cell 配列、string 配列、数値スカラー、または 0 として指定します。

ターゲット オブジェクトを指定する方法はタイプによって異なります。

  • モデル — モデルの名前またはハンドル。

  • サブシステム — サブシステムの名前またはハンドル。

  • ライブラリ — ライブラリの名前またはハンドル。

  • ブロック — ブロックのパスまたはハンドル。

  • ライン — ラインのハンドル。

  • 端子 — 端子のハンドル。

  • バス要素端子の要素 — 要素のラベルが付いたモデル コンポーネントのブロック パス。要素は、最上位バス、入れ子のバス、信号、メッセージなど、任意の端子の要素にすることができます。

共通のパラメーターをもつ複数のオブジェクトを指定するには、文字ベクトルの cell 配列、string 配列、またはハンドルの配列を使用します。指定したすべてのオブジェクトに指定したパラメーターが含まれていなければなりません。そうでない場合、関数はエラーを返します。

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

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

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

例: 'vdp/Mu'

例: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'

ヒント

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

  • 通常 MATLAB に表示されるよりも多くの桁を指定しなければならないため、ハンドルの数値 (5.007 など) を手動で指定しようとしないでください。ハンドルを変数に代入し、その変数の名前を使用します。

データ型: char | string | double

パラメーター、プロパティ、または属性の名前。文字ベクトルまたは string スカラーとして指定します。一部の名前では大文字と小文字が区別されます。

次の表に特殊なケースを示します。

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

指定したオブジェクトのパラメーター名を個別のフィールドとする構造体配列。

'DialogParameters'

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

パラメーター、プロパティ、または属性の詳細については、対応するリファレンス ページのプログラムでの使用に関する情報を参照してください。次に例を示します。

  • モデル — コンフィギュレーション パラメーターのリファレンス ページを参照してください。

  • ブロック — 共通のブロック プロパティおよびブロックのリファレンス ページを参照してください。

  • 端子 — 信号プロパティツールのリファレンス ページを参照してください。

  • バス要素端子の要素 — In Bus Element ブロックおよび Out Bus Element ブロックのリファレンス ページを参照してください。

例: 'ObjectParameters'

例: 'Solver'

例: 'SimulationCommand'

例: 'Position'

例: 'NameLocation'

データ型: char | string

出力引数

すべて折りたたむ

パラメーターの値。パラメーター タイプで決まる形式で返されます。複数のオブジェクトを指定する場合、出力は cell 配列になります。

次の表に特殊なケースを示します。

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

指定したオブジェクトのパラメーター名を個別のフィールドとする構造体配列。

'DialogParameters'

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

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

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

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

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

バージョン履歴

R2006a より前に導入