Main Content

StatesToLog

Specify species, compartment, or parameter data recorded

Description

The StatesToLog property specifies the species, compartment, or parameter data to log during a simulation. This is the data returned in x during execution of [t,x] = sbiosimulate(modelObj). By default, all species, nonconstant compartments, and nonconstant parameters are logged.

If you specify a particular list of species, compartments, or parameters to be logged, the order of the states in the result SimData after simulation is the same as the order specified.

Characteristics

Applies toObject: RuntimeOptions
Data typeCharacter vector, cell array of character vectors, object or vector of objects
Data valuesSpecies objects, compartment objects, or parameter objects. Default is 'all', which means all species objects, all nonconstant compartment objects and all nonconstant parameter objects are logged. A nonconstant compartment or parameter means that its ConstantValue property is set to false.
AccessRead/write

Examples

expand all

Load the Lotka-Volterra model.

sbioloadproject lotka;

Get the configset object of the lotka model m1.

configset = getconfigset(m1);

Display the list of species whose data are logged by default during the simulation.

configset.RuntimeOptions.StatesToLog
ans = 
   SimBiology Species Array

   Index:    Compartment:    Name:    Value:    Units:
   1         unnamed         x        1               
   2         unnamed         y1       900             
   3         unnamed         y2       900             
   4         unnamed         z        0               

Suppose you want to log just species y1 and y2 data. You can specify their names as a cell array of strings and set it to StatesToLog property.

configset.RuntimeOptions.StatesToLog = {'y1','y2'};

Confirm the setting.

configset.RuntimeOptions.StatesToLog
ans = 
   SimBiology Species Array

   Index:    Compartment:    Name:    Value:    Units:
   1         unnamed         y1       900             
   2         unnamed         y2       900             

Alternatively, you can specify an array of species objects (instead of strings) to StatesToLog property.

y1 = m1.Species(2);
y2 = m1.Species(3);
configset.RuntimeOptions.StatesToLog = [y1, y2];

Simulate and plot the results. Notice that simulation results of only y1 and y2 are plotted.

sbioplot(sbiosimulate(m1));

Figure contains an axes object. The axes object with title States versus Time, xlabel Time, ylabel States contains 2 objects of type line. These objects represent y1, y2.

To reset to the default list, set StatesToLog to a string 'all', which means all species objects, all nonconstant compartment objects and all nonconstant parameter objects are logged by default. A nonconstant compartment or parameter means that its Constant property is set to false.

configset.RuntimeOptions.StatesToLog = 'all';

Simulate again. Notice all the species data are plotted.

sbioplot(sbiosimulate(m1));

Figure contains an axes object. The axes object with title States versus Time, xlabel Time, ylabel States contains 4 objects of type line. These objects represent x, y1, y2, z.

Do not specify 'all' as a cell string such as {'all'}. If so, SimBiology interprets it as a species named all.