Variable ... is undefined on some execution paths

86 visualizaciones (últimos 30 días)
hello guys!
I hope somebody can advise me with respect the next code, when I run it into embedded editor from simulink embedded block, I have the error that Variable 'mu1' is undefined on some execution paths.
function [u_F,mu12,mu32] = fcn(s,delta)
%#codegen
a = 0.5;
mu12 = 0;
mu32 = 0;
y = 0;
if s <= -a
mu1 = 1;
mu2 = 0;
mu3 = 0;
elseif -a < s && s <= 0
mu1 = -1/a*s;
mu2 = 1/a*(s+a);
mu3 = 0;
elseif s > 0 && a >= s
mu1 = 0;
mu2 = -1/a*(s-a);
mu3 = 1/a*s;
elseif s > a
mu1 = 0;
mu2 = 0;
mu3 = 1;
end
mu12 = mu1;
mu32 = mu3;
y = (mu1*(-delta)+mu2*0+mu3*delta)/(mu1+mu2+mu3);
u_F = y;

Respuesta aceptada

Ryan Livingston
Ryan Livingston el 27 de Abr. de 2015
Editada: Ryan Livingston el 27 de Abr. de 2015
As the error says, there is a possible execution path on which mu1 is not defined. In particular, if all of the conditions in your if and elseif statements are false, then mu1,mu2,mu3 will not be defined.
To resolve this define them to default values either before the if:
mu1 = 0; mu2 = 0; mu3 = 0;
if s<= -1 ...
or add an else branch:
elseif s > a
mu1 = 0;
mu2 = 0;
mu3 = 1;
else
mu1 = 0;
mu2 = 0;
mu3 = 0;
end
The documentation explains this error message in more detail.
  3 comentarios
Ambe Harrison
Ambe Harrison el 19 de Jul. de 2022
Thank you Ryan Livingston your comment was very useful. It just solved a similar problem i encoutered.
Kind regards.
Elisa Micaela Rodriguez Steinbrecher
Amazing, thanks for your answer

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deployment, Integration, and Supported Hardware en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by