preview
Class: matlab.io.datastore.SimulationDatastore
Package: matlab.io.datastore
Return subset of data from datastore
Syntax
data = preview(dst)
Description
returns
a subset of data from datastore (data
= preview(dst
)matlab.io.datastore.SimulationDatastore
object) dst
without
changing its current read position. preview
returns
only the first ten samples (time steps) of data in the datastore.
Use this method to quickly inspect and verify that the data appears
as you expect.
Input Arguments
dst
— Input datastore
matlab.io.datastore.SimulationDatastore
object
Input datastore, specified as a matlab.io.datastore.SimulationDatastore
object.
To create a SimulationDatastore
object, see matlab.io.datastore.SimulationDatastore
.
Output Arguments
data
— Subset of data
timetable
object
Subset of data, returned as a timetable
object.
For information about timetable
, see Timetables.
Examples
Inspect and Analyze Data in Simulation Datastore
This example shows how to log big data from a simulation and inspect and analyze portions of that data by interacting with a matlab.io.datastore.SimulationDatastore
object.
Log Big Data from Model
Open the example model sldemo_fuelsys
.
open_system('sldemo_fuelsys')
Select Configuration Parameters > Data Import/Export > Log Dataset data to file.
set_param('sldemo_fuelsys','LoggingToFile','on')
Simulate the model.
sim('sldemo_fuelsys')
The MAT-file out.mat
appears in your current folder. The file contains data for logged signals such as fuel
(which is at the root level of the model).
At the command prompt, create a DatasetRef
object that refers to the logging variable by name, sldemo_fuelsys_output
.
DSRef = Simulink.SimulationData.DatasetRef('out.mat','sldemo_fuelsys_output');
Preview Big Data
Use curly braces ({
and }
) to extract the signal element fuel
, which is the tenth element in DSRef
, as a Simulink.SimulationData.Signal
object that contains a SimulationDatastore
object.
SimDataSig = DSRef{10};
To more easily interact with the SimulationDatastore
object that resides in the Values
property of the Signal
object, store a handle in a variable named DStore
.
DStore = SimDataSig.Values;
Use the preview
method to inspect the first five samples of logged data for the fuel
signal.
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
Inspect Specific Sample
Inspect the 603rd sample of logged fuel
data.
Set the ReadSize
property of DStore
to a number that, considering memory resources, your computer can tolerate. For example, set ReadSize
to 200
.
DStore.ReadSize = 200;
Read from the datastore three times. Each read operation advances the reading position by 200 samples.
read(DStore); read(DStore); read(DStore);
Now that you are very close to the 603rd sample, set ReadSize
to a smaller number. For example, set ReadSize
to 5
.
DStore.ReadSize = 5;
Read from the datastore again.
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
The third sample of read data is the 603rd sample in the datastore.
Inspect Earlier Sample
Inspect the 403rd sample of logged fuel
data. Due to previous read operations, the datastore now reads starting from the 606th sample, so you must reset the datastore. Then, you can read from the first sample up to the 403rd sample.
Use the reset
method to reset DStore
.
reset(DStore);
Set ReadSize
to 200
again.
DStore.ReadSize = 200;
Read from the datastore twice to advance the read position to the 401st sample.
read(DStore); read(DStore);
Set ReadSize
to 5
again.
DStore.ReadSize = 5;
Read from the datastore.
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
Extract Multiple Samples
Extract samples 1001 through 1020 (a total of 20 samples).
Reset the datastore.
reset(DStore)
Advance to sample 1001.
DStore.ReadSize = 200; for i = 1:5 read(DStore); end
Prepare to extract 20 samples from the datastore.
DStore.ReadSize = 20;
Extract samples 1001 through 1020. Store the extracted data in a variable named 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
Find Maximum Value of Data in Datastore
Reset the datastore.
reset(DStore)
Write a while
loop, using the hasdata
method, to incrementally analyze the data in chunks of 200 samples.
DStore.ReadSize = 200; runningMax = []; while hasdata(DStore) tt = read(DStore); rawChunk = tt.Data; runningMax = max([rawChunk; runningMax]); end
Now, the variable runningMax
stores the maximum value in the entire datastore.
runningMax
runningMax = 1.6423
Version History
Introduced in R2017a
See Also
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
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.
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)