メインコンテンツ

progress

データストアから読み取ったデータの割合を返す

説明

p = progress(dst) は、データストア オブジェクト dst から読み取ったデータの割合を 0 ~ 1 の数値として返します。たとえば、戻り値 0.55 はデータの 55% を読み取ったことを意味します。関数 progressNumSamples プロパティを使用して、現在の読み取り位置を確認します。

すべて折りたたむ

シミュレーションからのビッグ データを含む matlab.io.datastore.SimulationDatastore オブジェクトがある場合、関数 read を使用してデータのチャンクを読み取り、データをインクリメンタルに処理できます。関数 progress は、データストアから読み取ったデータの割合を返します。

モデルからのビッグ データのログ記録

モデル例 sldemo_fuelsys を開きます。

mdl = "sldemo_fuelsys";
open_system(mdl)

[コンフィギュレーション パラメーター]、[データのインポート/エクスポート]、[データセットのデータをファイルにログ] を選択します。あるいは、set_param 関数を使用し、Dataset 形式を使用してログに記録されたシミュレーション データのログをワークスペースの代わりに MAT ファイルに記録できます。

set_param(mdl,"LoggingToFile","on")

モデルのシミュレーションを実行します。

sim(mdl)

現在のフォルダーに MAT ファイル out.mat が表示されます。ログに記録された信号データは、変数名 sldemo_fuelsys_out を使用して MAT ファイルに格納されます。

ログに記録された信号データを参照する DatasetRef オブジェクトを作成します。

DSRef = Simulink.SimulationData.DatasetRef("out.mat","sldemo_fuelsys_output");

データの読み取りと進行状況の確認

中かっこを使用して、fuel 信号の SimulationDatastore 表現を返します。これは、DatasetRef オブジェクト DSRef の 10 番目の要素になります。SimulationDatastore オブジェクトは、返される Signal オブジェクトの Values プロパティに存在します。

SimDataSig = DSRef{10};
DStore = SimDataSig.Values;

NumSamples プロパティは、データストア内のサンプルの合計数を返します。

DStore.NumSamples
ans = uint64

203009

DstoreReadSize プロパティを 200 に設定します。次に、データストアから 10 回読み取ります。各読み取り操作で、読み取り位置は 200 サンプル進みます。

DStore.ReadSize = 200;
for i = 1:10
    read(DStore);
end

関数 progress を使用して、データストアにおける合計に対して読み取った割合を確認します。

progress(DStore)
ans = 
0.0099

入力引数

すべて折りたたむ

入力データストア。matlab.io.datastore.SimulationDatastore オブジェクトとして指定します。

出力引数

すべて折りたたむ

データストアから読み取ったデータの割合。01 の数値として返されます。

データ型: double

バージョン履歴

R2017a で導入