# matlab function syms slows down simulink model

조회 수: 3(최근 30일)
Bernd Pfeifer 2022년 11월 27일
댓글: Bernd Pfeifer 2022년 11월 28일
Hi,
i want to calculate the syms function y in a matlab function block in simulink . There is a slow and a fast option:
slow option:
------------------------
function y = fcn(v)
coder.extrinsic('calc_y') % is needed, otherwise simulink prints an error
y =0;
y = calc_y(v);
------------------------
which calls the extrinsic matlab function:
------------------------
function y = calc_y(v)
y = evalin('base','y'); % Read syms function y from workspace
y = double(subs(y,v));
------------------------
y is a syms function in the workspace : y =2v +v +5; % dummy function
The code works, but it is very slow.
fast option:
The fast solution is to copy y in the matlab function block like:
------------------------
function y = fcn(v)
y =2v +v +5; % no syms function anymore
------------------------
y is calculated in matlab init file and can be changed in the initialization. So with the fast option i need to copy the y function everytime by hand.
The problem of the caluclation speed is the syms function.
Is there any workaround to not declare it as syms function and copy the function automatically in the matlab function block in simulink?
Thanks and Regards!
Bernd

댓글을 달려면 로그인하십시오.

### 채택된 답변

Steven Lord 2022년 11월 27일
Generate a MATLAB Function block using matlabFunctionBlock as shown on this documentation page.
##### 댓글 수: 2표시 이전 댓글 수: 1숨기기 이전 댓글 수: 1
Bernd Pfeifer 2022년 11월 28일
solved it with https://de.mathworks.com/help/symbolic/sym.matlabfunction.html

댓글을 달려면 로그인하십시오.

### 범주

Find more on Event Functions 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!