このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
get_param
パラメーターの名前と値の取得
説明
例
ブロック パスを使用したブロック パラメーター値の取得
次の入力引数を指定して関数 get_param
を使用することで、ブロック パラメーターの値を取得できます。
ブロック ハンドル、またはブロック名を含む絶対ブロック パス (たとえば、
'myModel/mySubsystem/myblock'
)パラメーター名
この例では、Alpha-sensor Low-pass Filter
という名前の Transfer Function ブロックで指定されている伝達関数の係数を取得します。
ブロックは、
slexAircraftExample
モデルのController
サブシステムにあります。伝達関数の分子の係数は、
Numerator
パラメーターに保存されます。伝達関数の分母の係数は、Denominator
パラメーターに保存されます。
例を開きます。次に、slexAircraftExample
モデルを読み込みます。
mdl = 'slexAircraftExample';
load_system(mdl)
伝達関数の係数を取得します。
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; num = get_param(path,'Numerator')
num = '[1]'
denom = get_param(path,'Denominator')
denom = '[Tal,1]'
ブロック パスが長く、複数のパラメーターを取得する場合は、ブロック ハンドルの使用を検討してください。
ブロック ハンドルを使用したブロック パラメーター値の取得
次の入力引数を指定して関数 get_param
を使用することで、ブロック パラメーターの値を取得できます。
ブロック ハンドル、またはブロック名を含む絶対ブロック パス (たとえば、
'myModel/mySubsystem/myblock'
)パラメーター名
この例では、Alpha-sensor Low-pass Filter
という名前の Transfer Function ブロックで指定されている伝達関数の係数を取得します。
ブロックは、
slexAircraftExample
モデルのController
サブシステムにあります。伝達関数の分子の係数は、
Numerator
パラメーターに保存されます。伝達関数の分母の係数は、Denominator
パラメーターに保存されます。
例を開きます。次に、関数 getSimulinkBlockHandle
を使用してブロック ハンドルを取得します。ブロック ハンドルの取得とモデルの読み込みを同時に行うには、関数 getSimulinkBlockHandle
の 2 番目の引数に true
を指定します。
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)
h = 489.0011
パラメーター値を取得するには、ハンドルを使用してブロックを指定します。ハンドルの値を手動で入力しないでください。MATLAB® コマンド ウィンドウで関数 getSimulinkBlockHandle
によって出力された値は、丸めのため、ハンドル値に一致しないことがあります。代わりにハンドルを変数に代入し、その変数の名前を使用してブロックを指定します。この例では、h
という名前の変数に値を代入しています。
num = get_param(h,'Numerator')
num = '[1]'
denom = get_param(h,'Denominator')
denom = '[Tal,1]'
ブロック パラメーター名の取得
次の入力引数を指定して関数 get_param
を使用することで、ブロック パラメーターの値を取得できます。
ブロック ハンドル、またはブロック名を含む絶対ブロック パス (たとえば、
'myModel/mySubsystem/myblock'
)パラメーター名
この例では、パラメーター名を取得する方法を示します。
slexAircraftExample
モデルの Alpha-sensor Low-pass Filter
という名前の Transfer Function ブロックの伝達関数の係数を取得するとします。これを行うには、伝達関数の係数を格納しているパラメーターの名前を取得する必要があります。
例を開きます。
Alpha-sensor Low-pass Filter
という名前の Transfer Function ブロックのハンドルを取得します。ブロック ハンドルの取得とモデルの読み込みを同時に行うには、関数 getSimulinkBlockHandle
の 2 番目の引数に true
を指定します。
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true);
関数 get_param
を使用して Alpha-sensor Low-pass Filter
という名前の Transfer Function ブロックのすべてのブロック パラメーターの名前を取得します。
get_param(h,'DialogParameters')
ans = struct with fields:
Numerator: [1x1 struct]
Denominator: [1x1 struct]
ParameterTunability: [1x1 struct]
AbsoluteTolerance: [1x1 struct]
ContinuousStateAttributes: [1x1 struct]
伝達関数の係数が Numerator
パラメーターおよび Denominator
パラメーターを使用して指定されていることが出力に示されます。これらのパラメーター名を使用して、伝達関数の分子と分母の係数を取得します。
num = get_param(h,'Numerator'); denom = get_param(h,'Denominator')
denom = '[Tal,1]'
ブロックのパスおよび名前の取得
次の入力引数を指定して関数 get_param
を使用することで、ブロック パラメーターの値を取得できます。
ブロック ハンドル、またはブロック名を含む絶対ブロック パス (たとえば、
'myModel/mySubsystem/myblock'
)パラメーター名
この例では、絶対ブロック パスおよび名前を取得する方法を示します。
パスおよび名前の取得
フィルターとして動作する slexAircraftExample
モデルのすべての Transfer Function ブロックの伝達関数の係数を取得するとします。これを行うには、フィルターとして動作するモデルのすべての Transfer Function ブロックの名前とパスを取得する必要があります。
例を開きます。次に、slexAircraftExample
モデルを読み込みます。
mdl = 'slexAircraftExample';
load_system(mdl)
関数 find_system
を使用して slexAircraftExample
モデルのすべてのブロックのパスを取得します。
paths = find_system(mdl,'Type','Block');
検索の深さを指定しなかった場合、関数 find_system
はモデルの階層構造の指定したレベル、および指定したレベルに含まれているすべての下位レベルですべてのブロックを検索します。slexAircraftExample
はモデルの階層構造の最上位であるため、モデルの階層構造のすべてのレベルにあるすべてのブロックがコマンドで返されます。
あるいは、フィルターが含まれているサブシステムがわかっている場合は、関数 get_param
を使用します。関数 get_param
は、モデルの階層構造の指定したレベルにあるブロックのパスのみを返します。指定したレベルに含まれているサブシステム内のものは返されません。この例では、フィルターは Controller
サブシステムの最上位にあります。
paths=get_param(mdl+'/Controller','blocks');
キーワードによるパスおよび名前のフィルター処理
slexAircraftExample
モデルでは、フィルターとして動作する Transfer Function ブロックのブロック名には単語 filter
または Filter
が含まれています。ブロック パスのリストを取得したら、単語 filter
または Filter
が含まれているものを取得します。
filterpaths = paths(contains(paths,{'Filter','filter'}));
ブロック パラメーター値の取得
ブロック名を使用して伝達関数の係数を取得します。たとえば、以下のコマンドを使用して Alpha-sensor Low-Pass
フィルターの伝達関数の係数を取得します。
num = get_param(filterpaths{1},'Numerator'); denom = get_param(filterpaths{1},'Denominator')
denom = '[Tal,1]'
ブロック タイプの表示
vdp
モデルのブロックのタイプのリストを取得します。
例を開きます。次に、vdp
モデルを読み込みます。
load_system('vdp')
vdp
モデルのブロックのパスと名前のリストを取得します。
blockpaths = find_system('vdp','Type','Block');
vdp
モデルのブロックごとに BlockType
パラメーターの値を取得します。
blocktypes = get_param(blockpaths,'BlockType')
blocktypes = 12x1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
モデル パラメーター値の取得
次の入力引数を指定して関数 get_param
を使用することで、モデル パラメーターの値を取得できます。
モデル名
モデル パラメーター名
IntegerOverflowMsg
パラメーターの値はモデルが整数オーバーフローを処理する方法を示します。モデルはメッセージを出力しないか、警告メッセージを出力するか、エラー メッセージを出力する場合があります。
2 つのモデルの IntegerOverflowMsg
パラメーターの値を比較するとします。
例を開きます。次に、vdp
モデルおよび f14
モデルを読み込みます。
load_system({'vdp','f14'})
vdp
モデルと f14
モデルの IntegerOverflowMsg
パラメーターの値を取得します。
vdpval = get_param('vdp','IntegerOverflowMsg'); f14val = get_param('f14','IntegerOverflowMsg');
整数オーバーフローが発生すると、vdp
モデルは警告を出力しますが、f14
モデルは何もメッセージを出力しません。
関数 strcmp
を使用して 2 つのパラメーター値を比較します。
strcmp(vdpval,f14val)
ans = logical
0
関数 strcmp
は 0
を出力します。これは、2 つのモデルで IntegerOverflowMsg
パラメーターに異なる値が含まれていることを示しています。
モデル パラメーター名の取得
次の入力引数を指定して関数 get_param
を使用することで、モデル パラメーターの値を取得できます。
モデル名
モデル パラメーター名
2 つのモデルのメッセージ パラメーター値を比較して、メッセージなし、警告メッセージ、エラー メッセージで処理される状況の観点から一貫性を確保したいとします。ただし、すべてのメッセージ パラメーターの名前がわかっているわけではありません。
例を開きます。次に、vdp
モデルおよび f14
モデルを読み込みます。
load_system({'vdp','f14'})
すべてのモデル パラメーターのリストを取得します。
params = get_param('vdp','ObjectParameters');
この関数は構造体を返します。モデル パラメーター名を含む cell 配列を作成します。
names = fieldnames(params);
メッセージ パラメーターの末尾は略語 Msg
です。略語 Msg
を含むすべてのモデル パラメーター名を取得します。
msgnames = names(contains(names,'Msg'));
vdp
モデルと f14
モデルのメッセージ パラメーター値を比較します。値が異なっているパラメーターの名前を出力します。
vdpval = cell(1,length(msgnames)); f14val = vdpval; for i=1:length(msgnames) vdpVal{i} = get_param('vdp',msgnames{i}); f14Val{i} = get_param('f14',msgnames{i}); if(strcmp(vdpVal{i},f14Val{i})<1) disp(msgnames{i}) end end
IntegerOverflowMsg IntegerSaturationMsg
2 つのメッセージ パラメーターに異なる値が含まれています。
パラメーター値およびオブジェクト プロパティ値のオプションの取得
次のいずれかのオプションのリストを取得するには、キーワード options
を指定して関数 get_param
を使用します。
ブロック パラメーター
モデル パラメーター
オブジェクト プロパティ (たとえば、注釈用の水平方向の配置オプション)
この例では、ブロック パラメーター、マスク パラメーター、およびモデル パラメーターのオプションのリストを取得する方法を説明します。
ブロック パラメーターのオプションのリストの取得
例を開きます。次に、vdp
モデルを読み込みます。
load_system('vdp')
Square ブロックの Output signal type
パラメーターのオプションのリストを取得します。
funcoptions = get_param('vdp/Square','options@OutputSignalType')
funcoptions = 1x3 cell
{'auto'} {'real'} {'complex'}
マスク サブシステム パラメーターのオプションのリストの取得
Mu
という名前のマスク Subsystem ブロックの Read/Write permissions
パラメーターのオプションのリストを取得します。
get_param('vdp/Mu','options@Permissions')
ans = 1x3 cell
{'ReadWrite'} {'ReadOnly'} {'NoReadOrWrite'}
モデル パラメーターのオプションのリストの取得
AlgebraicLoopMsg
という名前のモデル パラメーターのオプションのリストを取得します。
get_param('vdp','options@AlgebraicLoopMsg')
ans = 1x3 cell
{'none'} {'warning'} {'error'}
注釈のオプションのリストの取得
vdp
モデル内の注釈を検索します。
h = find_system(gcs,'FindAll','on','Type','annotation');
行列 h
内のハンドルに対応している注釈テキストを出力します。
get_param(h,'PlainText')
ans = 3x1 cell
{'Copyright 2004-2022 The MathWorks, Inc.'}
{'Van der Pol Equation' }
{'x'' - µ(1-x^2) x' + x = 0' }
タイトル注釈 'Van der Pol Equation'
の水平方向の配置用のオプションのリストを取得します。
get_param(h(2),'options@HorizontalAlignment')
ans = 1x3 cell
{'left'} {'center'} {'right'}
マスク パラメーターの値の取得
関数 get_param
でキーワード value
を使用して、マスク ブロック パラメーターの値にアクセスできます。
例を開きます。次に、vdp
モデルを開きます。
open_system('vdp')
Mu
という名前のマスク Subsystem ブロックの gain
パラメーターの値を取得します。
get_param('vdp/Mu','value@gain')
ans = 1
モデルでブロックをダブルクリックします。
マスクで、gain
パラメーターを変更するスライダーを移動します。
gain
パラメーターの値を再度取得します。
get_param('vdp/Mu','value@gain')
ans = 1
ルート パラメーターの名前と値の取得
グローバル パラメーターの名前と値を取得します。
グローバル パラメーター名のリストの取得
Simulink® ルート パラメーター名とモデル パラメーター名の差異を探して、グローバル パラメーター名のリストを取得できます。
例を開きます。次に、vdp
モデルを読み込みます。
load_system('vdp')
すべてのモデル パラメーターの名前を取得します。
modelparamnames = fieldnames(get_param('vdp','ObjectParameters'));
Simulink ルート パラメーター名のリストを取得します。
rootparamnames = fieldnames(get_param(0,'ObjectParameters'));
ルート パラメーター名とモデル パラメーター名のリストの差異を探してグローバル パラメーターの名前を取得します。
globalparamnames = setdiff(rootparamnames,modelparamnames);
グローバル パラメーター値の取得
グローバル パラメーターの値を取得します
globalparamval = get_param(0,'CurrentSystem')
globalparamval = 'vdp'
入力引数
object
— オブジェクトの名前、パス、ハンドル、またはルート
文字ベクトル | 文字ベクトルの cell 配列 | string 配列 | 数値スカラー | 0
オブジェクトの名前、パス、ハンドル、またはルート。文字ベクトル、文字ベクトルの 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
parameter
— パラメーター、プロパティ、または属性の名前
文字ベクトル | string スカラー
パラメーター、プロパティ、または属性の名前。文字ベクトルまたは string スカラーとして指定します。一部の名前では大文字と小文字が区別されます。
次の表に特殊なケースを示します。
指定したパラメーター | 結果 |
---|---|
'ObjectParameters' | 指定したオブジェクトのパラメーター名を個別のフィールドとする構造体配列。 |
'DialogParameters' | ブロック ダイアログ ボックスのパラメーター名を個別のフィールドとする構造体配列。ブロックにマスクがある場合は代わりにマスク パラメーターを返します。 |
パラメーター、プロパティ、または属性の詳細については、対応するリファレンス ページのプログラムでの使用に関する情報を参照してください。次に例を示します。
モデル — コンフィギュレーション パラメーターのリファレンス ページを参照してください。
ブロック — 共通のブロック プロパティおよびブロックのリファレンス ページを参照してください。
端子 — 信号プロパティツールのリファレンス ページを参照してください。
バス要素端子の要素 — In Bus Element ブロックおよび Out Bus Element ブロックのリファレンス ページを参照してください。
例: 'ObjectParameters'
例: 'Solver'
例: 'SimulationCommand'
例: 'Position'
例: 'NameLocation'
データ型: char
| string
出力引数
value
— パラメーター値
パラメーター タイプで決まる形式
パラメーターの値。パラメーター タイプで決まる形式で返されます。複数のオブジェクトを指定する場合、出力は 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 より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)