Compile ODE solver with parameterized function

2 ビュー (過去 30 日間)
Jannis TW
Jannis TW 2018 年 11 月 23 日
回答済み: Ryan Livingston 2018 年 11 月 27 日
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)

採用された回答

Ryan Livingston
Ryan Livingston 2018 年 11 月 27 日
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 件)

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

製品


リリース

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by