Issue with parameter array sorting in SimBiology after loading using sbioloadproject

1 visualizzazione (ultimi 30 giorni)
When I load a .sbproj the parameters are often in seemingly random order. Consider the example model 'AntibacterialPKPD.sbproj'
s1 = sbioloadproject('AntibacterialPKPD');
model = s1.m1
model.Parameters
the parameter array looks like that
SimBiology Parameter Array
Index: Name: Value: ValueUnits:
1 KC50 1 microgram/milliliter
2 Kmax 3.5 1/hour
3 B 1.5 1/hour
4 CL 1 milliliter/minute
...
Is it possible to sort it alphabetically with respect to 'Name'?
The reason I am asking is that I would like to assign selected parameters read in from a file, e.g. containing different parameter sets for 3 parameters B, k1, k2.
% paramArray = [paramSet1; ...
% paramSet2 ;...
% paramSet3]
% with
% paramSeti = {B_i, k1_i, k2_i}, i = 1,2,3
Any ideas would be very appreciated.
Best, M

Risposta accettata

Arthur Goldsipe
Arthur Goldsipe il 21 Ago 2019
Hi,
By default, the parameters appear in this list in the order in which they were added to the model. However, you can reorder the parameters using the reorder method. For example, you could reorder the parameters "alphabetically" using the following code:
[~, newOrder] = sort(get(model.Parameters, 'Name'))
reorder(model, model.Parameters(newOrder))
I put alphabetically in quotes, because this sorts all uppercase before lowercase, as described here.
You can also find a specific parameter by name using the sbioselect function. So, regardless of the order, you could set the value of Kmax to 5 using the following code:
Kmax = sbioselect(model, 'Name', 'Kmax');
Kmax.Value = 5;
Finally, if you want to create parameter sets that can be swapped in and out for particular simulations, then you may be interested in variants. You can learn more about them and view an example on the sbiovariant reference page.
-Arthur

Più risposte (0)

Community

Più risposte nel  SimBiology Community

Categorie

Scopri di più su Scan Parameter Ranges in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by