Declare 'eval' function in Embedded MATLAB

7 views (last 30 days)
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

Walter Roberson
Walter Roberson on 4 Mar 2011
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
Tong-Seop
Tong-Seop on 4 Mar 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.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!