Accessing a variant object
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Deepa Maheshvare
le 27 Avr 2019
Réponse apportée : Jeremy Huard
le 29 Avr 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
0 commentaires
Réponse acceptée
Jeremy Huard
le 29 Avr 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'})
0 commentaires
Plus de réponses (0)
Communautés
Plus de réponses dans SimBiology Community
Voir également
Catégories
En savoir plus sur Import Data dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!