SimBiology calling a function

4 views (last 30 days)
Richard Allen
Richard Allen on 26 Feb 2014
Answered: Ingrid Tigges on 5 Mar 2014
I am familiar with the SimBiology functionality that allows calling a user defined MATLAB function. Is there a shorthand to pass all species to that function?
For example what I'm looking to be able to do is call:
P= myfunction(X,P,0.5);
rather than
P=myfunction(species1,species2,...,parameter1,parameter2,....)
where X is a vector with elements containing each species in the model, and P all the parameters.
Thanks for any help/suggestions!
Richard
  1 Comment
Ingrid Tigges
Ingrid Tigges on 26 Feb 2014
Hello Richard, please contact technical support regarding your question and refer to Ingrid Tigges and your post on MATLAB Answers.

Sign in to comment.

Answers (1)

Ingrid Tigges
Ingrid Tigges on 5 Mar 2014
Have a look at the attached code. simbiology_ml_answers is the main script. The steps are as follows:
  • Get species names with
speciesNames = get(m1.Species, 'Name');
  • Build a string containing all species names
  • If you use your own function in a rule, put the string into the rule (with added information like the function name)
As you can see in the code there are some additional tweaks necessary to prevent things like algebraic loops.

Communities

More Answers in the  SimBiology Community

Categories

Find more on Extend Modeling Environment in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!