MATLAB Answers

Compile ODE solver with parameterized function

8 ビュー (過去 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)

  0 件のコメント

サインインしてコメントする。

採用された回答

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 件のコメント

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by