How to reference compartment value? (Volume)

How do I reference the volume of a compartment in a mathematical expression?
For example, I can reference species "S" in compartment "C" via:
C.S
But none of these works to reference C's volume, even though they are the properties of compartments according to the documentation :
C
C.capacity
C.value
I can't seem to find an answer in the documentation.

 采纳的回答

Hi Felix,
you can refer to the volume of a compartment by the name of the compartment in any expression: C in your case.
Here is a quick example:
modelObj = sbiomodel('model');
compObj = addcompartment(modelObj,'C',1,Units='liter');
addspecies(compObj,'S',0,Units='milligram/liter');
addparameter(modelObj,'ke',0,Units='1/hour');
addparameter(modelObj,'CL',2,Units='liter/hour');
addrule(modelObj,'ke = CL/C','initialAssignment');
reacObj = addreaction(modelObj,'C.S -> null');
kObj = addkineticlaw(reacObj,"MassAction");
kObj.ParameterVariableNames = {'ke'};
cs = getconfigset(modelObj);
cs.CompileOptions.UnitConversion = true;
modelObj.Rules
ans =
SimBiology Rule Array Index: RuleType: Rule: 1 initialAssignment ke = CL/C
Best regards,
Jérémy

2 个评论

It seems I can't reference the compartment volume as a stoichiometric coefficient in the model builder. Any idea how I can do that?
Since my original question has been answered I will accept this answer, thank you!
Hi Felix,
stoichiometric coefficients must be numbers (double) and they can't be parametrized. Which means that a reaction like is fine but is not.
One way to achieve this woud be with a script that modifies the stoichiometric coefficient. For example:
modelObj = sbiomodel('cell');
compObj = addcompartment(modelObj,'Central',10,Units='liter');
reactionObj = addreaction(modelObj, '2 a + b -> c');
modelObj.Reactions
ans =
SimBiology Reaction Array Index: Reaction: 1 2 a + b -> c
reactionObj.Stoichiometry(2) = -compObj.Value;
modelObj.Reactions
ans =
SimBiology Reaction Array Index: Reaction: 1 2 a + 10 b -> c
I am curious about your use case though.
Can you tell me more about the what you are trying to achieve?
Best regards,
Jérémy

请先登录,再进行评论。

更多回答(0 个)

社区

更多回答在  SimBiology Community

类别

在 帮助中心 和 File Exchange 中查找有关 Extend Modeling Environment 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by