Main Content

getSimulinkBlockHandle

ブロック パスからのブロック ハンドルの取得

説明

handle = getSimulinkBlockHandle(path)path で指定されたブロックの数値ハンドルを返します (読み込まれたモデルまたはライブラリに存在する場合)。ブロックが見つからない場合は -1 を返します。必要に応じてライブラリ リンクは関連付けられます。

getSimulinkBlockHandle で返された数値ハンドルを使用して、それ以降の get_param または set_param の呼び出しでブロックを操作します。この方法は、ブロックの絶対パスを使用してこれらの関数を複数回呼び出すよりも効率的です。通常 MATLAB® に表示されるよりも多くの桁を指定しなければならないため、ハンドルの数値 (5.007 など) を単独で使用しないでください。ハンドルを変数に代入し、その変数名を使用してブロックを指定します。ハンドルは現在の MATLAB セッションに対してのみ適用されます。

getSimulinkBlockHandle を使用してブロック パスが有効かどうかを確認します。この方法は try ステートメントの内部で get_param を呼び出すよりも効率的です。

handle = getSimulinkBlockHandle(path,true) は指定したブロック path を含むモデルまたはライブラリを読み込み、ブロックが存在するかどうかを確認しようとします。モデルまたはライブラリが見つからない場合、エラーは返されません。指定したパスで関数によってブロックが見つからない場合でも、この方法で読み込まれたモデルまたはライブラリはメモリ内に残ります。

すべて折りたたむ

ブロックを入力引数として指定する必要がある複数の関数呼び出しを行う場合は、ブロック ハンドルの使用を検討してください。以下の例では、ブロック ハンドルを取得する方法を説明します。

例を開きます。次に、f14 モデルを読み込みます。

load_system('f14')

Pilot という名前の Signal Generator ブロックのハンドルを取得します。

h=getSimulinkBlockHandle('f14/Pilot')
h = 106.0007

このハンドルは以降の関数呼び出し (たとえば、関数 get_paramset_param の呼び出し) で使用できます。

ブロック ハンドルを使用して Wave form パラメーターの値を取得します。

get_param(h,'WaveForm')
ans = 
'square'

ブロック ハンドルを使用して Wave form パラメーターの値を Sine に設定します。

set_param(h,'WaveForm','Sine')

変更を確認するために、Wave form パラメーターの値を再度取得します。

get_param(h,'WaveForm')
ans = 
'sine'

この例では、単一の関数呼び出しでモデルを読み込んでそのモデルのブロックのハンドルを取得する方法について説明します。

例を開きます。次に、関数 getSimulinkBlockHandle の単一の呼び出しで f14 モデルを読み込み、Pilot という名前のブロックのハンドルを取得します。

h = getSimulinkBlockHandle('f14/Pilot',true)
h = 124.0009

このハンドルは以降の関数呼び出し (たとえば、関数 get_paramset_param の呼び出し) で使用できます。

ブロック ハンドルを使用して Wave form パラメーターの値を取得します。

get_param(h,'WaveForm')
ans = 
'square'

関数 getSimulationBlockHandle は関数入力引数で指定したブロックのハンドルを返します。有効なハンドルは 0 よりも大きい値です。関数でブロックが見つけられない場合は、-1 が返されます。

この例では、関数 getSimulationBlockHandle を使用して、モデルが読み込まれていて特定のブロックを含んでいるかどうかを確認する方法を示します。

モデル f14 が読み込まれ、Pilot という名前のブロックが含まれているかどうかを確認します。

Check=getSimulinkBlockHandle('f14/Pilot') > 0
Check = logical
   0

Check の値が 0 の場合、f14 モデルが読み込まれていないか、f14 モデルに Pilot という名前のブロックが含まれていません。

Check の値が 1 の場合、モデルは読み込まれており、モデルに Pilot という名前のブロックが含まれています。

入力引数

すべて折りたたむ

ブロック パス名。文字ベクトル、または文字ベクトルの cell 配列として指定します。

例: 'f14/Pilot'

データ型: char

出力引数

すべて折りたたむ

ブロックの数値ハンドル。double または double の配列として返されます。有効なハンドルは常に 0 よりも大きくなります。関数でブロックが見つけられない場合は、-1 が返されます。path 入力が文字ベクトルの cell 配列の場合、出力はハンドルの数値配列になります。

データ型: double

バージョン履歴

R2015a で導入