how to implement symbolic matlab function on simulink?
4 次查看(过去 30 天)
显示 更早的评论
im trying to implement the following function on matlab function on simulink but error 'syms is not supported for a stand alone code generation' occures
function fkt = fcn(c,p,k,N)
syms t
ft=p^(-c/2)*(c/2)*t.^((c/2)-1).*exp(-(t./p).^(c/2));
Ft=1-exp(-(t/p).^(c/2));
fkt=k*nchoosek(N/2,k)*(1-Ft)^(N/2-k)*(Ft)^(k-1)*ft
end
2 个评论
Nicolas Schmit
2017-10-18
Simulink works only with numerical data. Why do you need to use the Symbolic Toolbox in a MATLAB function?
回答(1 个)
Sean de Wolski
2017-11-2
You can do this by putting syms inside of a function called by a MATLAB Function block where the inner function is flagged as extrinsic:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/179121/image.png)
5 个评论
Walter Roberson
2017-11-2
In that case, extrinsic is not going to work, unfortunately. You will need to use a MATLAB Function block for at least the nchoosek; perhaps it would be easier to put it all into a MATLAB Function block to do the
(c*k*t^(c/2 - 1)*exp(-(t/p)^(c/2))^(N/2 - k + 1)*nchoosek(N/2, k)*(1 - exp(-(t/p)^(c/2)))^(k - 1))/(2*p^(c/2))
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!