Calling a Matlab function from workspace to Simulink matlab function block

조회 수: 18 (최근 30일)
I have 2 functions that I want to use in the Matlab_function block in simulink, however, the functions are too long for copying and writing them in the script of the block (I get this display " Output truncated. Text exceeds maximum line length for Command Window display."). I tried only calling them or using function handle in the block script but it doesn't work. Is there a way I can call this function into my simulink file?

채택된 답변

Sayyed Ahmad Fani Yazdi
Sayyed Ahmad Fani Yazdi 2019년 1월 14일
use in simulink function
eml.extrinsic('YourFunctionNameInMatlab');
for example
function [val_out] = fcn(Val_in)
%#eml
eml.extrinsic('YourFunctionNameInMatlab');
Val_out=zeros(1);
[Val] = YourFunctionNameInMatlab(Val_in);
you code use the same rule for a function with more than one input value and more than one output value
  댓글 수: 1
Lidia Itzel Morales Gaitán
Lidia Itzel Morales Gaitán 2019년 1월 15일
I tried this and I got this error from Simulink:
"Expected either a logical, char, int, fi, single, or double. Found an mxArray. MxArrays are returned from calls to the MATLAB interpreter and are not supported inside expressions. They may only be used on the right-hand side of assignments and as arguments to extrinsic functions.
Function 'MQ' (#31.136.152), line 8, column 7:
"Q_cir(th1, th1d)"
Launch diagnostic report.
Component:MATLAB Function | Category:Coder error
Errors occurred during parsing of MATLAB function 'MQ'
Component:MATLAB Function | Category:Coder error
Simulink cannot determine sizes and/or types of the outputs for block 'MQ' due to errors in the block body, or limitations of the underlying analysis. The errors might be inaccurate. Fix the indicated errors, or explicitly specify sizes and/or types for all block outputs."

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulink Functions에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by