MATLAB Answers

Issue with parameter array sorting in SimBiology after loading using sbioloadproject

조회 수: 2(최근 30일)
emjey
emjey 20 Aug 2019
Edited: emjey 21 Aug 2019
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

  댓글 수: 0

로그인 to comment.

채택된 답변

Arthur Goldsipe
Arthur Goldsipe 21 Aug 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

  댓글 수: 1

emjey
emjey 21 Aug 2019
Thanks! After adding conversion to uppercase before sorting I get what I need with the first option, as described here:

로그인 to comment.

More Answers (0)

이 질문에 답변하려면 로그인을(를) 수행하십시오.

제품


릴리스

R2018b

커뮤니티

더 많은 답변 보기:  SimBiology Community


Translated by