How can i define a parameter with if condition?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I want to define variables with if and switch conditions in simbiology. Is it possible to define using matlab code?
For example I have variable say
x = normrnd(140,104)
if x>440
y = 440;
elseif x<40
y = 40;
else
x=y;
end
0 Commenti
Risposta accettata
Azzi Abdelmalek
il 4 Feb 2013
Modificato: Azzi Abdelmalek
il 4 Feb 2013
You have to initialize y
y=0 %for example
%or maybe in the last else you wanted
y=x
then
x = normrnd(140,104)
y=x
if x>440
y = 440;
elseif x<40
y = 40;
end
%or without a for loop
x = normrnd(140,104)
y=40*(x<40)+440*(x>440)+x*(40<=x & x<=440)
0 Commenti
Più risposte (1)
Arthur Goldsipe
il 4 Feb 2013
Hi,
The short answer is that SimBiology cannot directly use "if" or "switch", but you can use them indirectly by putting them in a helper function. For example, to use the sample code you provided, create a file named "myrand.m" with the following content:
function y = myrand
x = normrnd(140,104)
if x>440
y = 440;
elseif x<40
y = 40;
else
y = x; % I assume "x=y" was a typo
end
Then, to use this function to set the initial value of a species named "z" in a model stored in variable "m1", use the following command:
m1.addrule('z = myrand()', 'initialAssignment');
Further, as Azzi points out above, this particular example can be written without if or switch statements. Here's how I'd write the rule so that I didn't have to create a separate helper function:
m1.addrule('z = max(min(normrnd(140, 104), 440), 40)', 'initialAssignment');
Community
Più risposte nel SimBiology Community
Vedere anche
Categorie
Scopri di più su Extend Modeling Environment in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!