Accessing a variant object

1 visualización (últimos 30 días)
Deepa Maheshvare
Deepa Maheshvare el 27 de Abr. de 2019
Respondida: Jeremy Huard el 29 de Abr. de 2019
I have a variant object of the following form
ContentIndex: Type: Name: Property: Value:
1 parameter A InitialAmount 5
2 species B InitialAmount 10
3 compartment C InitialAmount 15
How to I access the rows with type species alone?
Thanks a lot

Respuesta aceptada

Jeremy Huard
Jeremy Huard el 29 de Abr. de 2019
Hi Deepa,
you can access the variant content with the dot notation.
If your variant is called v, v.Content will be an array of cell array with one row per component in this variant.
That being said, I like to convert variants into a table to handle it. For this you can use the following function:
function tableObj = sbiovariant2table(variantObj)
% tableObj = sbiovariant2table(variantObj)
%
% Converts the content of a variant to a Table that can be exported to
% Excel with writeTable
content = vertcat(variantObj.Content{:});
tableObj = cell2table(content,'VariableNames',{'Type','Name','Property','Value'});
tableObj.Name = string(tableObj.Name);
tableObj.Type = categorical(tableObj.Type);
tableObj.Property = categorical(tableObj.Property);
tableObj.Properties.Description = variantObj.Name;
end
With this function you can retrieve all species easily:
tableVar = sbiovariant2table(v);
speciesInVar = tableVar(tableVar.Type == 'species',{'Name','Value'})

Más respuestas (0)

Comunidades de usuarios

Más respuestas en  SimBiology Community

Categorías

Más información sobre Import Data en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by