find
Simulink.SimulationData.Dataset
オブジェクトから要素または要素の集合を取得
構文
説明
例
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.
論理演算子を使用した Dataset
オブジェクトの要素の検索
関数 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.
正規表現を使用した 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
を使用して、名前に 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.
入力引数
dsIn
— Dataset
オブジェクト
Simulink.SimulationData.Dataset
オブジェクト
一致する要素を検索する Dataset
オブジェクト。Simulink.SimulationData.Dataset
オブジェクトとして指定します。
prop
— 検索するプロパティのタイプ
string | 文字ベクトル
検索するプロパティのタイプ。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.
val
— 検索するプロパティ値
string | 文字ベクトル
検索するプロパティ値。string または文字ベクトルとして指定します。'-regexp'
引数を使用すると、プロパティ値を正規表現にできます。
logical
— 論理演算子
'-and'
| '-or'
複数のプロパティ タイプと値のペアを接続する論理演算子。'-and'
または '-or'
として指定します。
演算を指定しない場合、この関数では '-and'
であると見なされます。
出力引数
dsOut
— Dataset
オブジェクト
Simulink.SimulationData.Dataset
オブジェクト
1 つ以上のプロパティ タイプと値のペアに一致する要素を格納した Dataset
オブジェクト。Simulink.SimulationData.Dataset
オブジェクトとして返されます。指定したプロパティ タイプと値に一致する要素がない場合、返される Dataset
オブジェクトは空になります。
idx
— インデックス
ベクトル
指定したプロパティ名とプロパティ値に一致する要素の Dataset
オブジェクト dsIn
におけるインデックス。ベクトルとして返されます。指定したプロパティ タイプと値に一致する要素がない場合、idx
は空になります。
代替方法
関数 find
を使用する代わりに、中かっこを使用してインデックス構文を効率化し、Dataset
オブジェクト内の要素にアクセスできます。インデックスは、変数の要素数以下の正の整数でなければなりません。たとえば、logsout
データセットの 2 番目の要素を検索します。
logsout{2}
また、関数 get
を使用して、データセットから要素または要素の集合を取得できます。
バージョン履歴
R2015b で導入
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)