主要内容

StatesToLog

R2026b

Specify species, compartment, or parameter data recorded

Description

Logged SimBiology quantity components, specified as a SimBiology.Species, SimBiology.Parameter, or SimBiology.Compartment object, or a vector of objects. Alternatively, you can specify the object name or names as a character vector, string scalar, string vector, or cell array of character vectors.

By default, the software logs all species, all nonconstant compartments, and all nonconstant parameters. For models with equivalence sets, it logs only the resolved quantity from each equivalence set. Nonresolved quantities are excluded.

When you specify quantities by name, use the fully qualified name (that is, the FullyQualifiedName property) for quantities that belong to child models. For example, specify a species as "parentModelName.childModelName.compartmentName.speciesName". If the model does not contain a hierarchy but multiple species in different compartments share the same name, use the qualified name instead (that is, "compartmentName.speciesName").

If you specify a quantity that is in an equivalence set but is not the resolved quantity, the software throws an error at simulation time. Remove these quantities from StatesToLog and replace them with their corresponding resolved quantities.

Characteristics

Applies toObject: RuntimeOptions
Data typeCharacter vector, cell array of character vectors, string scalar, string vector, object or vector of objects
Data valuesSpecies objects, compartment objects, or parameter objects. Default is 'all', which means the software logs all species, all nonconstant compartments, and all nonconstant parameters. For models with equivalence sets, it logs only the resolved quantity from each equivalence set. Nonresolved quantities are excluded. 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:    ParentModel:
   1         unnamed         x        1                   lotka       
   2         unnamed         y1       900                 lotka       
   3         unnamed         y2       900                 lotka       
   4         unnamed         z        0                   lotka       

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:    ParentModel:
   1         unnamed         y1       900                 lotka       
   2         unnamed         y2       900                 lotka       

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.