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 vues (au cours des 30 derniers jours)
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)

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 5 Août 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.

Plus de réponses (0)

Catégories

En savoir plus sur Simulink Environment Customization dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by