Main Content


Query simulation results in Simulink.SimulationOutput object



    res = find(simOut,varName) returns the simulation data specified by varName from the Simulink.SimulationOutput object simOut. If no property exists in the object with the name varName, the return value is empty.

    You can also access data inside a Simulink.SimulationOutput object using the get function or by using a dot to access the data as a property.


    collapse all

    When simulation results are returned as a single output object, you can 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";

    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 a dot, the get function, or the find function. Each method operates on the logging variable name, and you can use any method to access any kind of logged data.

    Use a dot 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 a dot 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 find 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 R2009b