Main Content

Simulink.sdi.snapshot

Capture contents of Simulation Data Inspector plots

Description

fig = Simulink.sdi.snapshot creates a figure of the plotting area in the open Simulation Data Inspector session with the figure handle fig.

[fig,image] = Simulink.sdi.snapshot creates a figure of the plotting area in the open Simulation Data Inspector session with the figure handle fig and returns the image data in the array, image.

Simulink.sdi.snapshot(Name,Value) captures an image of the Simulation Data Inspector plots according to the options specified by name-value pairs.

fig = Simulink.sdi.snapshot(Name,Value) captures an image of the Simulation Data Inspector plots according to the options specified by name-value pairs. This syntax returns the figure handle, fig, if a figure is created.

example

[fig, image] = Simulink.sdi.snapshot(Name,Value) captures an image of the Simulation Data Inspector plots according to the options specified by name-value pairs. This syntax returns the figure handle, fig, and an array of image data, image, when appropriate for the specified options.

Examples

collapse all

Copy view settings from one run to another and create figures using the Simulink.sdi.CustomSnapshot object.

Simulate Model and Get Run Object

Configure the vdp model to save output data. Run a simulation to create data.

load_system("vdp")
set_param("vdp","SaveFormat","Dataset","SaveOutput","on")
set_param("vdp/Mu","Gain","1");
sim("vdp");

Use the Simulation Data Inspector programmatic interface to access the run data.

runIndex = Simulink.sdi.getRunCount;
runID = Simulink.sdi.getRunIDByIndex(runIndex);
vdpRun = Simulink.sdi.getRun(runID);

Modify Signal View Settings

Use the Simulink.sdi.Run object to access signals in the run. Then, modify the signal view settings. This example specifies the line color and style for each signal. The view settings for the run comprise the view settings for each signal and view settings specified for the plot area.

sig1 = getSignalByIndex(vdpRun,1);
sig2 = getSignalByIndex(vdpRun,2);

sig1.LineColor = [0 0 1];
sig1.LineDashed = "-.";

sig2.LineColor = [1 0 0];
sig2.LineDashed = ":";

Capture Snapshot from Simulation Data Inspector

Create a Simulink.sdi.CustomSnapshot object and use the Simulink.sdi.snapshot function to programmatically capture a snapshot of the contents of the Simulation Data Inspector.

snap = Simulink.sdi.CustomSnapshot;

You can use properties of the Simulink.sdi.CustomSnapshot object to configure the plot settings, such as the subplot layout and axis limits, and to plot signals. When you use a Simulink.sdi.CustomSnapshot object to create your figure, these plot settings do not affect the Simulation Data Inspector.

snap.Rows = 2;
snap.YRange = {[-2.25 2.25],[-3 3]};
plotOnSubPlot(snap,1,1,sig1,true)
plotOnSubPlot(snap,2,1,sig2,true)

Use the Simulink.sdi.snapshot function to generate the figure you specified in the properties of the Simulink.sdi.CustomSnapshot object.

fig = Simulink.sdi.snapshot("From","custom","To","figure","Settings",snap);

Figure contains 2 axes objects. Axes object 1 with xlabel Time (seconds) contains an object of type line. This object represents x1. Axes object 2 with xlabel Time (seconds) contains an object of type line. This object represents x2.

Copy View Settings to New Simulation Run

Simulate the model again, with a different Mu value. Use the Simulation Data Inspector programmatic interface to access the simulation data.

set_param("vdp/Mu","Gain",".5")
sim("vdp");

runIndex2 = Simulink.sdi.getRunCount;
runID2 = Simulink.sdi.getRunIDByIndex(runIndex2);
run2 = Simulink.sdi.getRun(runID2);

To create a plot of the new output data that looks like the one you created in the previous step, you can copy the view settings to the run in a single line of code using the Simulink.sdi.copyRunViewSettings function. This function does not automatically update plot settings in Simulink.sdi.CustomSnapshot objects, so specify the input that determines whether the plot updates as false.

sigIDs = Simulink.sdi.copyRunViewSettings(runID,runID2,false);

Capture Snapshot of New Simulation Run

Use the Simulink.sdi.CustomSnapshot object to capture a snapshot of the new simulation run. First, clear the signals from the subplots. Then, plot the signals from the new run and capture another snapshot.

clearSignals(snap)
snap.YRange = {[-2.25 2.25],[-8 8]};
plotOnSubPlot(snap,1,1,sigIDs(1),true)
plotOnSubPlot(snap,2,1,sigIDs(2),true)


fig = snapshot(snap,"To","figure");

Figure contains 2 axes objects. Axes object 1 with xlabel Time (seconds) contains an object of type line. This object represents x2. Axes object 2 with xlabel Time (seconds) contains an object of type line. This object represents x1.

Input Arguments

collapse all

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'to','figure','props',{'Name','My Data'}

Content to include in the snapshot.

  • 'opened' — Include all subplots in the graphical viewing area of the open Simulation Data Inspector session.

  • 'active' — Include only the active (selected) subplot in the open Simulation Data Inspector session.

  • 'comparison' — Include the comparison plots for the selected comparison run or signal in the open Simulation Data Inspector session.

  • 'custom' — Include contents specified by the settings name-value pair Simulink.sdi.CustomSnapshot object. You can use the 'from','custom' option to create a snapshot without opening the Simulation Data Inspector or affecting your open Simulation Data Inspector session. Include a settings name-value pair when you specify 'from','custom'.

Example: 'from','comparison'

Data Types: char | string

Type of snapshot to create, specified as:

  • "image" — Create a figure and return the figure handle and an array of image data. When you specify "To","image", the fig and image outputs both have value.

  • "figure" — Create a figure and return the figure handle. When you specify "To","figure", the fig output has value, and the image output is empty.

  • "file" — Save to a PNG file with the name specified by the Filename name-value argument. If you do not specify a Filename name-value argument, the file is named plots.png. When you specify "To","file", the fig and image outputs are both empty.

  • "clipboard" — Copy the plots to your system clipboard. From the clipboard, you can paste the image into another program, such as Microsoft® Word. When you specify "To","clipboard", the fig and image outputs are both empty.

Example: "To","file"

Data Types: char | string

Name for image file to store the snapshot when you specify "To","file", specified as a character array or string.

Example: "Filename","MyImage.png"

Data Types: char | string

Figure properties, specified as a cell array. To customize your figure, you can include settings for the figure properties described in Figure Properties.

Example: "Props",{"Name","MyData","NumberTitle","off"}

Data Types: char | string

Simulink.sdi.CustomSnapshot object specifying custom snapshot settings. You can use the settings name-value pair to specify the dimensions of the image in pixels, subplot layout, and limits for the x- and y-axes.

Example: 'settings',customSnap

Data Types: char | string

Output Arguments

collapse all

Figure handle, specified as a figure handle. When a figure is not created with your specified options, the fig output is empty.

Image data, returned as an array. The image output has value when you use Simulink.sdi.snapshot without any input arguments or without a To name-value argument and when you specify 'To','image'.

Version History

Introduced in R2018a