- Place your entire code in a regular MATLAB function .m file, and call it from Simulink using an Interpreted MATLAB Function block instead.
- Place just the unsupported piece (the generation of the function handle) in a separate function and call it as interpreted using coder.extrinsic.
How can I use a function handle in Simulink "matlab function" block?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Muhammad Zeeshan Babar
el 11 de Ag. de 2015
Editada: Vignesh Ramakrishnan
el 12 de Jun. de 2023
Hello,
I am trying to simulate this first order function
*function [f,h] = Model_First_order(u,deltat)
f=@(x)[x(1)+deltat*(-x(2)*x(1)+u(1)); x(2)]; h=@(x)x(1);*
using the function handle in Simulink Matlab function block. But as I try to simulate it, it gives me an error that
Anonymous functions are not supported for code generation. Function 'Model_first_order' (#23.313.314), line 21, column 3: "@" Launch diagnostic report. Component: MATLAB Function | Category: Coder error
Please help me to solve this problem.
0 comentarios
Respuestas (1)
Sebastian Castro
el 11 de Ag. de 2015
Editada: Sebastian Castro
el 11 de Ag. de 2015
If you won't be generating code from your Simulink model (i.e., you just want a desktop simulation), you could do a few things:
... or, my favorite approach:
3. Given that you seem to be modeling some kind of first-order set of equations, it would probably be MUCH easier (and numerically accurate) to implement the equations in Simulink with Integrator blocks!
- Sebastian
2 comentarios
Vignesh Ramakrishnan
el 12 de Jun. de 2023
Editada: Vignesh Ramakrishnan
el 12 de Jun. de 2023
@Sebastian Castro, quick follow-up on this question: Say I have solved a first order ODE in Simulink and called the simulink file say ode.slx, using:
y=sim("ode.slx");
I wish to make a function handle for this call, and hopefully make a phase portrait with a quiver plot and contour lines. Is there some way to pull that off?
Ver también
Categorías
Más información sobre Event Functions en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!