Why do I receive an error about number of output arguments when using an MATLAB file S-function in Simulink 6.0 (R14) which simulates correctly in earlier versions?

2 views (last 30 days)
I receive an error about number of output arguments when using an MATLAB file S-function in Simulink 6.0 (R14) which simulates correctly in earlier versions.
I have a model which contains an MATLAB file S-function created in MATLAB 6.5.1 (R13SP1). This function simulates with no errors when ran in Simulink 5.1 (R13SP1) and earlier versions. However, when I attempt to simulate the same model and S-function in Simulink 6.0 (R14), I receive the following error:
Error in 'untitled/S-Function' while executing MATLAB file
S-function 'my_sfun', flag = 0 (initialize), at start
of simulation. MATLAB error message:
One or more output arguments not assigned during call
to '$MATLAB\work\my_sfun.m (my_sfun)'
(where $MATLAB = the MATLAB root directory on your machine)

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 5 Aug 2010
In Simulink 6.0 (R14), the variable str must be initialized in the case where flag = 0 (Initialization) when it was not necessary in earlier versions. As a workaround, try adding:
str = [];
to the case where flag = 0 in your MATLAB file S-function. Also, you can use
[sys,x0,str, ts] = mdlInitializeSizes;
and declare str in mdlInitializeSizes. This is the approach given in the example S-function template sfuntmpl.m.

More Answers (0)

Categories

Find more on Simulink Environment Customization in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!