Main Content


Access simulation results in Simulink.SimulationOutput object



    res = get(simOut,varName) returns the simulation data specified by varName from the Simulink.SimulationOutput object simOut.

    You can also access data inside a Simulink.SimulationOutput object using dot notation.


    collapse all

    When you simulate a model in a way that returns simulation results as a single object, you access all logged data and simulation metadata using the Simulink.SimulationOutput object.

    The model in this example has the Single simulation output parameter enabled and logs data using several different logging methods.

    • The output of the Sine Wave block is logged using signal logging.

    • The output of the Gain block is logged using a To Workspace block.

    • The outputs of the Gain, Chirp Signal, and Square Wave Generator blocks are logged using a Record block.

    • The output of the Square Wave Generator block is logged using output logging.

    The model is also configured to log time data.

    Open the model.

    mdl = "LoggingBlocks";

    The model LoggingBlocks.

    Create a Simulink.SimulationInput object to configure the simulation for the model. Use the setModelParameter function to set the StopTime parameter to 20.

    simIn = Simulink.SimulationInput(mdl);
    simIn = setModelParameter(simIn,'StopTime','20');

    Simulate the model. The sim function output out is a Simulink.SimulationOutput object that contains all data logged from the simulation. The data for each block and each type of logging is stored as a property that matches the name of the logging variable specified in the block or model.

    out = sim(simIn);

    You can access logged data using dot notation, the get function, or the find function.

    Use dot notation to access the Big Sine signal logged using the To Workspace block.

    simout = out.simout
      Common Properties:
                Name: 'Big Sine'
                Time: [51x1 double]
            TimeInfo: tsdata.timemetadata
                Data: [51x1 double]
            DataInfo: tsdata.datametadata

    Use the get function to access the Sine signal logged using signal logging.

    logsout = get(out,"logsout")
    logsout = 
    Simulink.SimulationData.Dataset 'logsout' with 1 element
                             Name  BlockPath               
                             ____  _______________________ 
        1  [1x1 Signal]      Sine  LoggingBlocks/Sine Wave
      - Use braces { } to access, modify, or add elements using index.

    Use the find function to access the Square Wave signal logged using output logging.

    yout = find(out,"yout")
    yout = 
    Simulink.SimulationData.Dataset 'yout' with 1 element
                             Name         BlockPath             
                             ___________  _____________________ 
        1  [1x1 Signal]      Square Wave  LoggingBlocks/Outport
      - Use braces { } to access, modify, or add elements using index.

    You can access the simulation metadata using dot notation or using the getSimulationMetadata function.

    simMetadata = getSimulationMetadata(out)
    simMetadata = 
      SimulationMetadata with properties:
            ModelInfo: [1x1 struct]
           TimingInfo: [1x1 struct]
        ExecutionInfo: [1x1 struct]
           UserString: ''
             UserData: []

    The simulation metadata is returned as a Simulink.SimulationMetadata object. The SimulationMetadata object groups information about the simulation in properties with structure values and has properties that allow you to specify a string and additional data related to the simulation.

    Access the ExecutionInfo property on the SimulationMetadata object. The execution information shows that the simulation ran through its stop time of 20 without warnings or errors.

    ans = struct with fields:
                   StopEvent: 'ReachedStopTime'
             StopEventSource: []
        StopEventDescription: 'Reached stop time of 20'
             ErrorDiagnostic: []
          WarningDiagnostics: [0x1 struct]

    Input Arguments

    collapse all

    Simulation results, specified as a Simulink.SimulationOutput object.

    Simulation data to return, specified as a string or a character vector.

    Use the get function to access data logged from simulation, such as signal logging data, logged outputs, and states, by specifying the name of the logging variable. For example, when you use the default signal logging variable name logsout, specify "logsout" to access the signal logging data.

    Example: "logsout"

    Data Types: char | string

    Output Arguments

    collapse all

    Simulation results, returned in one of these forms:

    The form of the return argument depends on the type of data you access and the configuration of the model for the simulation.

    Version History

    Introduced in R2010a

    expand all