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.

 Accepted Answer

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 Comment

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.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!