このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
read
クラス: matlab.io.datastore.SimulationDatastore
パッケージ: matlab.io.datastore
データ ストアのデータの読み取り
構文
data = read(dst)
[data,info] = read(dst)
説明
は、データストア (data
= read(dst
)matlab.io.datastore.SimulationDatastore
オブジェクト) からデータを返します。関数 read
を続けて呼び出すと、前回の呼び出しの終点から読み取りが続行されます。SimulationDatastore
オブジェクトの ReadSize
プロパティを使用して、一度に読み取るデータの量をサンプル (タイム ステップ) 単位で指定します。progress
メソッドと NumSamples
プロパティを使用して、現在の読み取り位置を確認します。
入力引数
dst
— 入力データ ストア
matlab.io.datastore.SimulationDatastore
オブジェクト
入力データ ストア。matlab.io.datastore.SimulationDatastore
オブジェクトとして指定します。SimulationDatastore
オブジェクトを作成する場合は、matlab.io.datastore.SimulationDatastore
を参照してください。
出力引数
例
シミュレーション データ ストアのデータの検査と解析
この例では、シミュレーションからのビッグ データをログに記録し、matlab.io.datastore.SimulationDatastore
オブジェクトを操作してそのデータの一部を検査および解析する方法を示します。
モデルからのビッグ データのログ記録
モデル例 sldemo_fuelsys
を開きます。
open_system('sldemo_fuelsys')
[コンフィギュレーション パラメーター]、[データのインポート/エクスポート]、[データセットのデータをファイルにログ] を選択します。
set_param('sldemo_fuelsys','LoggingToFile','on')
モデルのシミュレーションを実行します。
sim('sldemo_fuelsys')
現在のフォルダーに MAT ファイル out.mat
が表示されます。ファイルには、fuel
(モデルのルート レベルにある) などのログに記録された信号のデータが含まれます。
コマンド プロンプトで、名前 sldemo_fuelsys_output
でログ変数を参照する DatasetRef
オブジェクトを作成します。
DSRef = Simulink.SimulationData.DatasetRef('out.mat','sldemo_fuelsys_output');
ビッグ データのプレビュー
中かっこ ({
と }
) を使用して信号要素 fuel
を抽出します。この信号要素は、SimulationDatastore
オブジェクトを含む・Simulink.SimulationData.Signal
オブジェクトとして、DSRef
の 10 番目の要素になります。
SimDataSig = DSRef{10};
Signal
オブジェクトの Values
プロパティに存在する SimulationDatastore
オブジェクトの操作を簡単にするためには、DStore
という名前の変数にハンドルを格納します。
DStore = SimDataSig.Values;
preview
メソッドを使用して、fuel
信号のログに記録されたデータの最初の 5 つのサンプルを検査します。
preview(DStore)
ans = 10x1 timetable Time Data ______________ ______ 0 sec 1.209 0.00056199 sec 1.209 0.0033719 sec 1.209 0.01 sec 1.1729 0.02 sec 1.1409 0.03 sec 1.1124 0.04 sec 1.0873 0.05 sec 1.0652 0.055328 sec 1.0652 0.055328 sec 1.0652
特定のサンプルの検査
ログに記録された fuel
データの 603 番目のサンプルを検査します。
DStore
の ReadSize
プロパティを、メモリ リソースを考慮して、コンピューターで許容できる数値に設定します。たとえば、ReadSize
を 200
に設定します。
DStore.ReadSize = 200;
データ ストアから 3 回読み取りを実行します。各読み取り操作で、読み取り位置は 200 サンプル進みます。
read(DStore); read(DStore); read(DStore);
603 番目のサンプルに非常に近くなったため、ReadSize
を小さい数値に設定します。たとえば、ReadSize
を 5
に設定します。
DStore.ReadSize = 5;
データ ストアからの読み込みを再度実行します。
read(DStore)
ans = 5x1 timetable Time Data ________ ______ 5.79 sec 1.6097 5.8 sec 1.6136 5.81 sec 1.6003 5.82 sec 1.5904 5.83 sec 1.5832
読み取られたデータの 3 番目のサンプルは、データ ストアの 603 番目のサンプルになります。
以前のサンプルの検査
ログに記録された fuel
データの 403 番目のサンプルを検査します。前の読み取り操作により、データ ストアは 606 番目のサンプルから読み取りを開始するため、データ ストアをリセットしなければなりません。その後、最初のサンプルから 403 番目のサンプルまでを読み取ることができます。
reset
メソッドを使用して、DStore
をリセットします。
reset(DStore);
ReadSize
を 200
に再度設定します。
DStore.ReadSize = 200;
データ ストアから 2 回読み取り、読み取り位置を 401 番目のサンプルに進めます。
read(DStore); read(DStore);
ReadSize
を 5
に再度設定します。
DStore.ReadSize = 5;
データ ストアから読み取ります。
read(DStore)
ans = 5x1 timetable Time Data ________ _______ 3.85 sec 0.999 3.86 sec 0.99219 3.87 sec 0.98538 3.88 sec 0.97858 3.89 sec 0.97179
複数のサンプルの抽出
サンプル 1001 ~ 1020 (合計 20 サンプル) を抽出します。
データ ストアをリセットします。
reset(DStore)
サンプル 1001 に進みます。
DStore.ReadSize = 200; for i = 1:5 read(DStore); end
データベースから 20 サンプル抽出する準備を行います。
DStore.ReadSize = 20;
サンプル 1001 ~ 1020 を抽出します。抽出したデータを targetSamples
という名前の変数に格納します。
targetSamples = read(DStore)
targetSamples = 20x1 timetable Time Data ________ ______ 9.7 sec 1.5828 9.71 sec 1.5733 9.72 sec 1.5664 9.73 sec 1.5614 9.74 sec 1.5579 9.75 sec 1.5553 9.76 sec 1.5703 9.77 sec 1.582 9.78 sec 1.5913 9.79 sec 1.5988 9.8 sec 1.605 9.81 sec 1.6101 9.82 sec 1.6145 9.83 sec 1.6184 9.84 sec 1.6049 9.85 sec 1.595 9.86 sec 1.5877 9.87 sec 1.5824 9.88 sec 1.5785 9.89 sec 1.5757
データ ストア内のデータの最大値の検出
データ ストアをリセットします。
reset(DStore)
while
ループを hasdata
メソッドを使用して記述し、200 サンプルのチャンク単位でデータを段階的に解析します。
DStore.ReadSize = 200; runningMax = []; while hasdata(DStore) tt = read(DStore); rawChunk = tt.Data; runningMax = max([rawChunk; runningMax]); end
これで、変数 runningMax
にはデータ ストア全体における最大値が格納されます。
runningMax
runningMax = 1.6423
バージョン履歴
R2017a で導入
参考
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)