Variable ... is undefined on some execution paths
86 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Smaghuli
el 17 de Abr. de 2015
Comentada: Elisa Micaela Rodriguez Steinbrecher
el 1 de Dic. de 2022
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;
0 comentarios
Respuesta aceptada
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
3 comentarios
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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Deployment, Integration, and Supported Hardware en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!