メインコンテンツ

getSimulinkBlockHandle

R2026b

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

説明

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

後続の関数呼び出しでブロックを操作するには、getSimulinkBlockHandle で返されたハンドルを使用します。これは、ブロック パスを使用するよりも効率的です。MATLAB コマンド ウィンドウでハンドルを出力したときに表示される数値は通常、丸められています。この値は使用しないでください。代わりに、ハンドルを変数に代入します。

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

ブロック ハンドルからブロック パスを取得するには、getfullname 関数を使用します。

例

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

例

例

すべて折りたたむ

MATLAB パス上に myModel という名前のモデルがあるとします。モデルには、mySubsystem という名前の Subsystem ブロックが含まれており、そのブロックには myBlock という名前の Gain ブロックが含まれています。myBlock のハンドルを取得し、そのハンドルを使用してゲインを 5 に変更します。

モデルを読み込みます。

load_system("myModel");

ハンドルを取得します。

myPath = "myModel/mySubsystem/myBlock";
h = getSimulinkBlockHandle(myPath);

ゲインを 5 に変更します。

set_param(h,Gain="5");

MATLAB パス上に myModel という名前のモデルがあるとします。モデルには、myBlock という名前の Gain ブロックが含まれています。

1 回の関数呼び出しでモデルを読み込んで myBlock のハンドルを取得します。

myPath = "myModel/myBlock";
h = getSimulinkBlockHandle(myPath,true);

MATLAB パス上に myModel という名前のモデルがあるとします。モデルには、mySubsystem という名前の Subsystem ブロックが含まれており、このブロックには 3 つのブロック myBlock1、myBlock2、および myBlock3 が含まれています。

1 回の関数呼び出しでモデルを読み込んでサブシステム内の 3 つのブロックすべてのハンドルを取得します。

pathRoot = "myModel/mySubsystem/myBlock";
myPaths = [pathRoot+"1";pathRoot+"2";pathRoot+"3"];
h = getSimulinkBlockHandle(myPaths,true);

MATLAB パス上に myModel という名前のモデルがあるとします。モデルには、mySubsystem という名前の Subsystem ブロックが含まれています。サブシステムに myBlock という名前のブロックが含まれているかどうかを確認します。

モデルを読み込みます。

load_system("myModel");

サブシステムに myBlock という名前のブロックが含まれているかどうかを確認します。

myPath = "myModel/mySubsystem/myBlock";
hasBlock = getSimulinkBlockHandle(myPath)>0

hasBlock の値が 1 の場合、サブシステムには myBlock という名前のブロックが含まれています。値が 0 の場合、サブシステムにそのブロックは含まれていません。

入力引数

すべて折りたたむ

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

ブロック パスの取得については、Get Handles and Pathsを参照してください。

例: "myModel/mySubsystem/myBlock"

例: ["myModel/myBlock1";"myModel/myBlock2"]

データ型: string | string array | character vector | cell array of character vectors

出力引数

すべて折りたたむ

ブロックの数値ハンドル。数値スカラーとして返されます。複数のブロック パスを指定した場合、関数はハンドルの数値配列を返します。有効なハンドルは常に 0 よりも大きくなります。関数でブロックが見つけられない場合は、-1 が返されます。

データ型: double | array of doubles

バージョン履歴

R2015a で導入