Declare 'eval' function in Embedded MATLAB

I made a secant method for complicated equation in MATLAB edit space. Like this... Function y = fcn(st, cq, a, g, ...) f=''3600 * st * cq * a * ((((2 * g * gam * pi)..........'; (Flow Function eq)
Of course, there is simple secant method.
n=0; x = xa; fa = eval(f); x = xb; fb = eval(f); .......
and then I put this script in Embedded MATLAB of Simulink. For 'eval' function, I also put 'eml.extrinsic('eval') in it.
When I start the simulation, I could see an error *"Call to MATLAB function aborted : Error using ==> eval Undefined function or variable 'st'."*
Thanks for your help.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 4 Mär. 2011

0 Stimmen

And does "st" indeed exist in your matlab workspace at the time? When you construct a string like that, the current value of the variable is not recorded.
If it is allowed on embedded systems, you would be better of constructing f as an anonymous function
f = @(x,n) 3600 * st * cq etc
and then you would invoke
fa = f(x, n);
fb = f(x, n);

1 Kommentar

Tong-Seop
Tong-Seop am 4 Mär. 2011
st, cq... are input data from simulink.
Thanks for your kindness.
But I'm not sure that the anonymous function (you made) is possible in embedded matalb.
But thanks, it helped.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Coder finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by