Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink.SimulationData.BlockPath クラス

パッケージ: Simulink.SimulationData

完全に指定された Simulink ブロック パス

説明

Simulink® は信号のログおよびデータ ストアのログ用に Dataset オブジェクトを作成する際にブロック パス オブジェクトを作成します。Simulink.SimulationData.Signal および Simulink.SimulationData.DataStoreMemory オブジェクトにはブロック パス オブジェクトが含まれます。

特定のデータセット要素にアクセスする getElement メソッドで使用可能なブロック パスを作成できます。信号のログまたはデータ ストアのログ データセットとの比較時のベースラインとして使用する MATLAB 中にデータセット作成をする場合は、データセットの一部としてブロック パスを作成しなければなりません。

Simulink.SimulationData.BlockPath クラスは Simulink.BlockPath とよく似ています。

Simulink.SimulationData.BlockPath クラスの使用については Simulink をインストールしておく必要はありません。ただし、Simulink.BlockPath クラスを使用するには Simulink をインストールしておかなくてはなりません。Simulink.BlockPath クラスには、モデル ブロック線図を更新せずにブロック パス オブジェクトの有効性をチェックできるメソッドが用意されているため、Simulink をインストールした場合は Simulink.SimulationData.BlockPath の代わりに Simulink.BlockPath を使用することを検討してください。

プロパティのまとめ

名前

説明

SubPath

ブロック パスに指定されたブロック内の各コンポーネント

メソッドのまとめ

名前

説明

BlockPath

ブロック パスを作成します。

convertToCell

ブロック パスを文字ベクトルの cell 配列に変換します。

getBlock

モデル参照階層にある単一のブロック パスを取得します。

getLength

ブロック パスの長さを取得します。

プロパティ

SubPath

説明

ブロック パスに指定されたブロックにある 1 つのコンポーネントを示します。

たとえば、SubPath チャートを参照するロック パスの場合、チャートの信号は Stateflow® を用いて示せます。以下に例を示します。

Block Path:
      'sf_car/shift_logic'
 
    SubPath:
      'gear_state.first'
データ型

文字ベクトル

アクセス

RW

メソッド

BlockPath

目的

ブロック パスの作成

構文
blockpath_object = Simulink.SimulationData.BlockPath()
blockpath_object = Simulink.SimulationData.BlockPath(blockpath)
blockpath_object = Simulink.SimulationData.BlockPath(paths)
blockpath_object = Simulink.SimulationData.BlockPath(paths, subpath)
入力引数
blockpath

コピーするブロック パス オブジェクト。

paths

Simulink がブロック パスを構築するために使用する文字ベクトルまたは文字ベクトルの cell 配列。

個々の文字ベクトルの指定は、最上位モデルからブロック パス作成を指定した各ブロックの順番で行います。

各文字ベクトルは、Simulink モデルにある 1 つのブロックへのパスとなっていなければなりません。ブロックは、次の要件を満たさなければなりません。

  • 単一モデルにある 1 つのブロック

  • 1 つの Model ブロック (最後の文字ベクトルは例外で、Model ブロック以外のブロックとなる場合もある)

  • 1 つ前の文字ベクトルに指定された Model ブロックによって参照される、モデル中のブロックの 1 つ

subpath

1 つのブロック内の各コンポーネントを示す文字ベクトルです。

出力引数
blockpath_object

作成するブロック パスです。

説明

blockpath_object = Simulink.SimulationData.BlockPath() は、空のブロック パスを作成します。

blockpath_object = Simulink.SimulationData.BlockPath(blockpath) は、source_blockpath 引数に指定されたブロック パス オブジェクトに対し、そのブロック パスのコピーを作成します。

blockpath = Simulink.SimulationData.BlockPath(paths) は、paths 引数に指定された文字ベクトルまたは文字ベクトルの cell 配列から、1 つのブロック パスを作成します。個々の文字ベクトルはモデルの階層構造の各レベルにおける 1 つのパスを示します。

blockpath = Simulink.SimulationData.BlockPath(paths, subpath) は、paths 引数に指定された文字ベクトルまたは文字ベクトルの cell 配列からブロック パスを作成し、ブロックの各コンポーネント (たとえば 1 つの信号) に対する 1 つのパスを作成します。

ブロック パスの要素を示す文字ベクトルの cell 配列を使用して、bp1 という名前のブロック パス オブジェクトを作成します。

bp1 = Simulink.SimulationData.BlockPath(...
{'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})

得られるブロック パスは、ブロック パスのモデル参照階層を反映したものになります。

bp1 = 

  Simulink.BlockPath
  Package: Simulink

  Block Path:
    'sldemo_mdlref_depgraph/thermostat'
      'sldemo_mdlref_heater/Fahrenheit to Celsius'
        'sldemo_mdlref_F2C/Gain1

convertToCell

目的

ブロック パスを文字ベクトルの cell 配列に変換

構文
cellarray = blockPathObject.convertToCell()
出力引数
cellarray

ブロック パスの要素を示す文字ベクトルの cell 配列です。

説明

cellarray = blockPathObject.convertToCell() は、ブロック パスを文字ベクトルの cell 配列に変換します。

bp1 = Simulink.SimulationData.BlockPath(...
{'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})
cellarray_for_bp1 = bp1.convertToCell()

得られる結果は、ブロック パスの要素を示す cell 配列です。

cellarray_for_bp1 = 

    'sldemo_mdlref_depgraph/thermostat'
    'sldemo_mdlref_heater/Fahrenheit to Celsius'
    'sldemo_mdlref_F2C/Gain1'

getBlock

目的

モデル参照階層にある単一のブロック パスを取得

構文
block = blockPathObject.getBlock(index)
入力引数
index

取得するブロック パスのブロック インデックスです。このインデックスは、モデル参照階層のレベルを反映しています。インデックス 1 は最上位モデルに対応し、インデックス 2 はインデックス 1 のブロックで参照されるモデル中のブロックに対応し、インデックス n はインデックス n-1 の参照ブロックに対応します。

出力引数
block

index 引数に指定されたモデル参照階層のレベルを示すブロックです。

説明

blockpath = Simulink.SimulationData.BlockPath.getBlock(index) は、index 引数に指定されたブロックのブロック パスを返します。

モデル参照階層にある 2 番目のレベルに対するブロックを取得します。

bp1 = Simulink.SimulationData.BlockPath(...
{'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})
blockpath = bp1.getBlock(2)

ブロック パス階層の 2 番目のレベルに存在する thermostat ブロックが得られます。

blockpath =

sldemo_mdlref_heater/Fahrenheit to Celsius

getLength

目的

ブロック パスの長さを取得します。

構文
length = blockPathObject.getLength()
出力引数
length

ブロック パスの長さです。この長さは、モデル参照階層のレベル数です。

説明

length = Simulink.SimulationData.BlockPath.getLength() は、ブロック パスのモデル参照階層におけるレベル数を、対応する数値で返します。

bp1 ブロック パスの長さを取得します。

bp1 = Simulink.SimulationData.BlockPath(...
{'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
 'sldemo_mdlref_F2C/Gain1'})
length_bp1 = bp1.getLength()

得られる結果は、3 つの要素をもつブロック パスを反映したものとなります。

length_bp1 =

     3
R2012b で導入