find
Simulink.SimulationData.Dataset オブジェクトから要素または要素の集合を取得
構文
説明
例
関数 find を使用して、Simulink.SimulationData.Dataset オブジェクトの要素または要素の集合にアクセスします。回転クラッチ システムをモデル化したモデル sldemo_clutch は、Dataset 形式で 10 個の信号をログに記録します。モデルの詳細については、クラッチ ロックアップ モデルの作成を参照してください。
モデルのシミュレーションを実行します。
sim("sldemo_clutch");ログに記録された信号データは、sldemo_clutch_output という名前の Dataset オブジェクトに格納されます。
ds = sldemo_clutch_output
ds =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 10 elements
Name BlockPath
____________ _________________________________
1 [1x1 Signal] Fn sldemo_clutch/Clutch Pedal
2 [1x1 Signal] Tin sldemo_clutch/Engine Torque
3 [1x1 Signal] LockedFlag sldemo_clutch/Friction Mode Logic
4 [1x1 Signal] LockupFlag sldemo_clutch/Friction Mode Logic
5 [1x1 Signal] UnlockFlag sldemo_clutch/Friction Mode Logic
6 [1x1 Signal] Tfmaxk sldemo_clutch/Friction Model
7 [1x1 Signal] Tfmaxs sldemo_clutch/Friction Model
8 [1x1 Signal] ShaftSpeed sldemo_clutch/Locked
9 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
10 [1x1 Signal] VehicleSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
関数 find を使用して、EngineSpeed という名前の要素を格納した Dataset オブジェクトを返します。
engSpeed = find(ds,"Name","EngineSpeed")
engSpeed =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 1 element
Name BlockPath
___________ ______________________
1 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
また、関数 find を使用して、要素の集合を格納した Dataset オブジェクトを返すこともできます。たとえば、関数 find を使用して、Friction Mode Logic ブロックからの出力信号としてログに記録された ds のすべての要素を返し、それらの要素の Dataset オブジェクト ds における対応するインデックスを取得します。
[dsFml,idx] = find(ds,"BlockPath","sldemo_clutch/Friction Mode Logic")
dsFml =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 3 elements
Name BlockPath
__________ _________________________________
1 [1x1 Signal] LockedFlag sldemo_clutch/Friction Mode Logic
2 [1x1 Signal] LockupFlag sldemo_clutch/Friction Mode Logic
3 [1x1 Signal] UnlockFlag sldemo_clutch/Friction Mode Logic
- Use braces { } to access, modify, or add elements using index.
idx = 1×3
3 4 5
複数のプロパティ タイプと値のペアを使用して結果を絞り込みます。たとえば、Friction Mode Logic ブロックの最初の端子でログに記録された要素を検索します。
dsFmlp1 = find(ds,"BlockPath","sldemo_clutch/Friction Mode Logic","PortIndex",1)
dsFmlp1 =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 1 element
Name BlockPath
__________ _________________________________
1 [1x1 Signal] LockedFlag sldemo_clutch/Friction Mode Logic
- Use braces { } to access, modify, or add elements using index.
関数 find で論理演算子 '-or' を使用して、Simulink.SimulationData.Dataset オブジェクトの要素の集合にアクセスします。回転クラッチ システムをモデル化したモデル sldemo_clutch は、Dataset 形式で 10 個の信号をログに記録します。モデルの詳細については、クラッチ ロックアップ モデルの作成を参照してください。
モデルのシミュレーションを実行します。
sim("sldemo_clutch");ログに記録された信号データは、sldemo_clutch_output という名前の Dataset オブジェクトに格納されます。
ds = sldemo_clutch_output
ds =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 10 elements
Name BlockPath
____________ _________________________________
1 [1x1 Signal] Fn sldemo_clutch/Clutch Pedal
2 [1x1 Signal] Tin sldemo_clutch/Engine Torque
3 [1x1 Signal] LockedFlag sldemo_clutch/Friction Mode Logic
4 [1x1 Signal] LockupFlag sldemo_clutch/Friction Mode Logic
5 [1x1 Signal] UnlockFlag sldemo_clutch/Friction Mode Logic
6 [1x1 Signal] Tfmaxk sldemo_clutch/Friction Model
7 [1x1 Signal] Tfmaxs sldemo_clutch/Friction Model
8 [1x1 Signal] ShaftSpeed sldemo_clutch/Locked
9 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
10 [1x1 Signal] VehicleSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
関数 find を使用して、Unlocked サブシステムまたは Locked サブシステムのいずれかからの出力信号としてログに記録された ds のすべての要素を格納した Dataset オブジェクトを返します。
find(ds,"BlockPath","sldemo_clutch/Unlocked",'-or',"BlockPath","sldemo_clutch/Locked")
ans =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 3 elements
Name BlockPath
____________ ______________________
1 [1x1 Signal] ShaftSpeed sldemo_clutch/Locked
2 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
3 [1x1 Signal] VehicleSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
関数 find で正規表現を使用して、Simulink.SimulationData.Dataset オブジェクトの要素の集合にアクセスします。回転クラッチ システムをモデル化したモデル sldemo_clutch は、Dataset 形式で 10 個の信号をログに記録します。モデルの詳細については、クラッチ ロックアップ モデルの作成を参照してください。
モデルのシミュレーションを実行します。
sim("sldemo_clutch");ログに記録された信号データは、sldemo_clutch_output という名前の Dataset オブジェクトに格納されます。
ds = sldemo_clutch_output
ds =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 10 elements
Name BlockPath
____________ _________________________________
1 [1x1 Signal] Fn sldemo_clutch/Clutch Pedal
2 [1x1 Signal] Tin sldemo_clutch/Engine Torque
3 [1x1 Signal] LockedFlag sldemo_clutch/Friction Mode Logic
4 [1x1 Signal] LockupFlag sldemo_clutch/Friction Mode Logic
5 [1x1 Signal] UnlockFlag sldemo_clutch/Friction Mode Logic
6 [1x1 Signal] Tfmaxk sldemo_clutch/Friction Model
7 [1x1 Signal] Tfmaxs sldemo_clutch/Friction Model
8 [1x1 Signal] ShaftSpeed sldemo_clutch/Locked
9 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
10 [1x1 Signal] VehicleSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
関数 find を使用して、名前に Speed という語を含む ds のすべての要素を格納した Dataset オブジェクトを返します。
正規表現 "\w*Speed\w*" は、Name プロパティに Speed という語を含む必要があるが、名前の指定されたテキストの前後には任意の英数字の表現やアンダースコア文字を含んでいてかまわないことを示します。
find(ds,"-regexp","Name","\w*Speed\w*")
ans =
Simulink.SimulationData.Dataset 'sldemo_clutch_output' with 3 elements
Name BlockPath
____________ ______________________
1 [1x1 Signal] ShaftSpeed sldemo_clutch/Locked
2 [1x1 Signal] EngineSpeed sldemo_clutch/Unlocked
3 [1x1 Signal] VehicleSpeed sldemo_clutch/Unlocked
- Use braces { } to access, modify, or add elements using index.
入力引数
一致する要素を検索する Dataset オブジェクト。Simulink.SimulationData.Dataset オブジェクトとして指定します。
検索するプロパティのタイプ。string または文字ベクトルとして指定します。
Dataset オブジェクトの各要素はオブジェクトです。各オブジェクトのタイプは格納されるデータによって異なります。関数 find によって返される Dataset オブジェクトに要素を含めるには、その要素に prop で定義されるプロパティ タイプがなければなりません。たとえば、Dataset オブジェクト内の Simulink.SimulationData.Signal オブジェクトの要素を検索する場合、Signal オブジェクトのプロパティのいずれかを使用して検索できます。
Name— 要素の名前PropagatedName— 伝播信号の名前BlockPath— ブロック パスPortIndex— 端子インデックスPortType— ログに記録された端子のタイプValues— ログに記録された時間とデータ
関数 find によって返される結果は 1 つのオブジェクト タイプに限定されません。関数 find では、指定されたプロパティ タイプと指定された値をもつ任意のオブジェクト タイプの要素を格納した Dataset オブジェクトを返すことができます。たとえば、Dataset オブジェクトに myName という名前の要素が 2 つあり、一方の要素は Signal オブジェクトで、もう一方のオブジェクトは timeseries オブジェクトであるとします。プロパティ タイプを Name、プロパティ値を myName と指定することで、関数 find を使用して両方の要素を検索できます。
dsName = find(ds,"Name","myName")
dsName =
Simulink.SimulationData.Dataset 'myDataset' with 2 elements
Name BlockPath
______ _________
1 [1x1 timeseries] myName ''
2 [1x1 Signal ] myName ''
- Use braces { } to access, modify, or add elements using index.検索するプロパティ値。string または文字ベクトルとして指定します。'-regexp' 引数を使用すると、プロパティ値を正規表現にできます。
複数のプロパティ タイプと値のペアを接続する論理演算子。'-and' または '-or' として指定します。
演算を指定しない場合、この関数では '-and' であると見なされます。
出力引数
代替方法
関数 find を使用する代わりに、中かっこを使用してインデックス構文を効率化し、Dataset オブジェクト内の要素にアクセスできます。インデックスは、変数の要素数以下の正の整数でなければなりません。たとえば、logsout データセットの 2 番目の要素を検索します。
logsout{2}また、関数 get を使用して、データセットから要素または要素の集合を取得できます。
バージョン履歴
R2015b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)