最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

matlab.io.datastore.sdidatastore.reset

クラス: matlab.io.datastore.sdidatastore
パッケージ: matlab.io.datastore

読み取り位置のリセット

構文

sdi_ds.reset

説明

sdi_ds.reset は、matlab.io.datastore.sdidatastoresdi_ds の読み取り位置を先頭にリセットします。

すべて展開する

matlab.io.datastore.sdidatastore は、シミュレーション データ インスペクター リポジトリ内の信号データを参照します。信号が大きすぎてメモリに入りきらない場合、matlab.io.datastore.sdidatastore を使用して手動でデータをインクリメンタルに処理するか、信号のインクリメンタル処理をユーザーに代わって実行する tall timetable を作成します。この例は、matlab.io.datastore.sdidatastore を使用してデータを処理する方法を示します。

信号の matlab.io.datastore.sdidatastore の作成

sldemo_fuelsys モデルをシミュレートします。このモデルは、複数の信号をログに記録して、シミュレーション データ インスペクター リポジトリ内にデータを作成するよう構成されています。

sim('sldemo_fuelsys')

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、信号の信号 ID を取得します。

runCount = Simulink.sdi.getRunCount;

latestRunID = Simulink.sdi.getRunIDByIndex(runCount);

latestRun = Simulink.sdi.getRun(latestRunID);

speedSigID = latestRun.getSignalIDByIndex(4);

信号 ID を使用して、speed 信号の matlab.io.datastore.sdidatastore を作成します。

speedSDIds = matlab.io.datastore.sdidatastore(speedSigID);

データ ストアの内容の確認

matlab.io.datastore.sdidatastoreName プロパティをチェックして、想定のとおりの内容であることを確認します。

speedSDIds.Name
ans = 
'map'

また、preview メソッドを使用して、信号内の最初の 10 個のサンプルが正しく見えることを確認することもできます。

speedSDIds.preview
ans=10×2 timetable
         Time          Data  
    ______________    _______

    0 sec               0.589
    0.00056199 sec    0.58772
    0.0033719 sec     0.58148
    0.01 sec          0.56765
    0.02 sec          0.54897
    0.03 sec          0.53264
    0.04 sec          0.51837
    0.05 sec          0.50594
    0.055328 sec          0.5
    0.055328 sec          0.5

matlab.io.datastore.sdidatastore による信号データの処理

信号が大きすぎてメモリに入りきらない場合、readData メソッドを使用して、シミュレーション データ インスペクター リポジトリからデータのチャンクを読み取り、データをインクリメンタルに処理することができます。hasdata メソッドを、信号全体をインクリメンタルに処理する際の while ループの条件として使用します。たとえば、信号の最大値を見つけます。

latestMax = [];

while speedSDIds.hasdata
    
    speedChunk = speedSDIds.read;
    speedChunkData = speedChunk.Data;
    latestMax = max([speedChunkData; latestMax]);
    
end

latestMax
latestMax = 0.8897

各読み取り操作で、read メソッドは、読み取り位置を次の読み取り操作の開始位置に更新します。matlab.io.datastore.sdidatastore の一部またはすべてを読み取った後、読み取り位置をリセットして、信号の先頭から再度開始することができます。

speedSDIds.reset

メモリ内の信号データの処理

matlab.io.datastore.sdidatastore で参照された信号がメモリに収まる場合、read メソッドでデータをインクリメンタルに読み込んで処理する代わりに、readall メソッドを使用してすべての信号データをメモリに読み込んで処理することができます。readall メソッドは、すべての信号データを含む timetable を返します。

speedTimetable = speedSDIds.readall;

speedMax = max(speedTimetable.Data)
speedMax = 0.8897

R2017b で導入