How to use symbolic variables and functions (Syms) in a Simulink Matlab Function?

Illustration
Rakesh - 2021-09-07T15:02:20+00:00
Question: How to use symbolic variables and functions (Syms) in a Simulink Matlab Function?

I would like to create a Symbolic function within a Simulink Matlab Function to solve the variables h and t1. Matlab produces error "The function 'syms' is not supported for standalone code generation. See the documentation for coder.extrinsic to learn how you can use this function in simulation." when I try to compile the Simulink Matlab function with the following code.     syms Eq1(h,t1); Eq1(h,t1) = h*t1; I tried adding "coder.extrinsic('syms')" at the top, as shown below, and this generated the error "Undefined function or variable 'h'." coder.extrinsic('syms'); syms Eq1(h,t1); Eq1(h,t1) = h*t1; How do I use symbolic variables and functions (Syms) in a Simulink Matlab Function?

Expert Answer

Profile picture of John Williams John Williams answered . 2025-11-20

I think the only solution is to use the syms function inside a separate .m file and call that file as extrinsic.
 
Create a new .m file, e.g. solveSyms.m, put all your code there:
 
function out = solveSyms(in)  % add necessary inputs and outputs
  syms x y
  f = x^2*y + 5*x*sqrt(y);  
  out = subs(f, x, in);
end

Now call this new file from the MATLAB Function block:

coder.extrinsic('solveSyms');
out = 0;
out = solveSyms(in);

I'm not very familiar with Symbolic Math toolbox, so you would need to correct the code above to use your equation.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!