MATLAB Answers

0

Compile ODE solver with parameterized function

Asked by Jannis TW on 23 Nov 2018
Latest activity Answered by Ryan Livingston on 27 Nov 2018
How can I compile a call to a ODE with a parameterized function? Lets take the example from ode45:
function y = odeTEST()
A = 1;
B = 2;
tspan = [0 5];
y0 = [0 0.01];
[t,y] = ode45(@(t,y) odefcn(t,y,A,B), tspan, y0);
end
function dydt = odefcn(t,y,A,B)
dydt = zeros(2,1);
dydt(1) = y(2);
dydt(2) = (A/B)*t.*y(1);
end
save them as .m files and and compile it with
codegen -config:dll odeTEST
it will give me
??? Anonymous functions are not supported for code generation
(This is related, but not identical to my other question on generating DLLs)

  0 Comments

Sign in to comment.

1 Answer

Answer by Ryan Livingston on 27 Nov 2018
 Accepted Answer

As of MATLAB R2016b, code generation with MATLAB Coder supports anonymous functions:
In prior releases, you can mimic them using persistent variables as shown here:

  0 Comments

Sign in to comment.