Access data for a Simulation Data Inspector run
run = Simulink.sdi.getRun(
Simulink.sdi.Run object that
provides access to the data in the run corresponding to the
runID. The Simulation Data Inspector assigns run IDs when it
creates a run. You can get the run ID for your run using
Access Simulation Data Inspector Runs
Many tasks performed using the Simulation Data Inspector programmatic interface start by accessing the
Simulink.sdi.Run object that corresponds to the logged or imported data you want to analyze. For example, you can use the
Run object to access the
Simulink.sdi.Signal objects that correspond to individual signals in the run.
This example shows how to access
Run objects by using the
Simulink.sdi.Run.getLatest function, the
Simulink.sdi.getCurrentSimulationRun function, or the
Create a Run
sldemo_fuelsys is already configured for logging. When you simulate the model, the Simulation Data Inspector automatically creates a run and assigns it a run ID.
Get Run Object Using
In this example, the run created when you simulated the model is the most recently created run in the Simulation Data Inspector. When you want to access the most recently created run, use the
fuelsysRun = Simulink.sdi.Run.getLatest;
Get Run Object Using
The run you want to access may not be the most recently created run in the Simulation Data Inspector. If the run corresponds to the most recent simulation of a model, you can use the
Simulink.sdi.getCurrentSimulationRun function to access the
Run object. You can also use the
Simulink.sdi.getCurrentSimulationRun function to access data for an in-progress simulation when the simulation streams data to the Simulation Data Inspector. This function can be useful when you are working with multiple models.
In this example, the run created when you simulated the model is the current simulation run for the
fuelsysRun = Simulink.sdi.getCurrentSimulationRun('sldemo_fuelsys');
Get Run Object from a Run ID
When your task also requires the run ID, you can use the
Simulink.sdi.getRun function to get the corresponding
Simulink.sdi.Run object that contains the run data and metadata.
runIDs = Simulink.sdi.getAllRunIDs; runID = runIDs(end); fuelsysRun = Simulink.sdi.getRun(runID);
Plot Signals from Simulation Run
This example demonstrates how to access the
Simulink.sdi.Run object for a Simulation Data Inspector run created by logging signals. From the
Simulink.sdi.Run object you can get
Simulink.sdi.Signal objects that contain the logged signal data and metadata. You can use the
Signal objects and the
plotOnSubPlot function to plot the data in the Simulation Data Inspector.
Create a Simulation Run and Access the
ex_vdp model logs two signals. To create a simulation run containing the logged data, simulate the model.
The Simulation Data Inspector keeps track of runs by assigning a unique numeric run ID to each run created by simulation, importing data, or opening a session. To access the run object for the simulation you just performed, use the
Simulink.sdi.getAllRunIDs function and take the last run ID in the returned vector.
runIDs = Simulink.sdi.getAllRunIDs; runID = runIDs(end);
Once you have the run ID for the run, you can use the
Simulink.sdi.getRun function to get the
Simulink.sdi.Run object that corresponds to the run. You can use the
Run object to check the metadata associated with the run, including the number of signals in the run.
vdpRun = Simulink.sdi.getRun(runID); vdpRun.SignalCount
ans = int32 2
Plot Data Using
getSignalByIndex function to access signals from the
signal1 = getSignalByIndex(vdpRun,1); signal2 = getSignalByIndex(vdpRun,2);
Simulink.sdi.setSubPlotLayout function to specify a 3-by-1 layout.
Before plotting the data, use the
Simulink.sdi.clearAllSubPlots function to clear any data that is already plotted.
Plot one signal on each subplot. To plot signals on the first subplot, you can set the
checked property for the signal. To plot signals on subplots other than the first subplot, use the
signal1.Checked = true; plotOnSubPlot(signal2,2,1,true);
View the Plotted Data
To view the plots you just created, open the Simulation Data Inspector using the
Simulink.sdi.Run object for the run corresponding to
the run ID.