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?
采纳的回答
更多回答(2 个)
Andrew Reibold
2014-9-26
编辑:Andrew Reibold
2014-9-26
Example equation: abs(x+1) + abs(5x-1) = 6
How to solve (Here, I look for real solutions specifically):
syms x real;
solve(abs(x+1)+abs(5*x-2)==6,x);
answer
ans =
7/6
-3/4
Walter Roberson
2016-11-30
Possibly
coder.extrinsic('sym');
coder.extrinsic('symfun');
h = sym('h');
t1 = sym('t1')
EQ1 = symfun(h*t1, h, t1) ;
1 个评论
Walter Roberson
2017-9-7
Note that any of these solutions can only work for "Normal" mode or for "Acceleration" mode, and cannot be used for Rapid Acceleration mode or for code generation to target. No part of the symbolic toolbox can have code generated for it. The use of coder.extrinsic and similar gives a work-around only for Acceleration mode, as there is still a backing MATLAB for that mode.
类别
在 帮助中心 和 File Exchange 中查找有关 Code Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!