Why break loop is not working?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Athira T Das
le 22 Juil 2022
Commenté : Walter Roberson
le 22 Juil 2022
The value of e at certain points is infinity. But the break loop is not working.
clc; clear all; close all;
M=3
for m1=0:M
m1;
for s1=0:1/2:m1/2
s1;
for s2=0:1/2:(M-m1)/2
s2;
if (m1-(2*s2)) < 0
break
end
for j1=0:m1-2*s1
j1;
if gamma(1+m1-(2*s2-j1))== nan;
break
end
if gamma(1+m1-(2*s2-j1))== Inf;
break
end
if gamma(1+m1-(2*s2-j1)) == 0
break
end
for j2=0:(M-m1-(2*s2))
j2;
q=factorial(m1-(2.*s2));
w=factorial(j1);
e=gamma(1+m1-(2.*s2)-j1)
end
end
end
end
end
0 commentaires
Réponse acceptée
SAI SRUJAN
le 22 Juil 2022
Modifié(e) : SAI SRUJAN
le 22 Juil 2022
Hi Athira T Das,
From my understanding of your question,the value of e is Inf in some cases and you want to avoid that using break statements.We can see that the value of e is inf because you are checking for a different condition in the if statement.Check for the comments in the following code snippet for better understanding,
clc; clear all; close all;
M=3;
for m1=0:M
m1;
for s1=0:1/2:m1/2
s1;
for s2=0:1/2:(M-m1)/2
s2;
if (m1-(2*s2)) < 0
break
end
for j1=0:m1-2*s1
j1;
if gamma(1+m1-(2*s2-j1))== nan;
break
end
% Here you are checking for gamma(1+m1-2*s2+j1).
if gamma(1+m1-(2*s2-j1))== Inf;
break
end
if gamma(1+m1-(2*s2-j1)) == 0
break
end
for j2=0:(M-m1-(2*s2))
j2;
q=factorial(m1-(2.*s2));
w=factorial(j1);
% Whereas here you are assigning gamma(1+m1-2*s2-j1.)
% We can see that sign of j1 is different.
% Change this to avoid assigning inf to e.
e=gamma(1+m1-(2.*s2)-j1);
end
end
end
end
end
% Consider using isnan and isinf
1 commentaire
Walter Roberson
le 22 Juil 2022
isnan() and isinf() can be combined
if ~isfinite(gamma(1+m1-(2*s2-j1))); break; end
Plus de réponses (1)
Walter Roberson
le 22 Juil 2022
if gamma(1+m1-(2*s2-j1))== nan;
That will never be true. Observe:
x = nan
x == x
x ~= x
You need to use isnan()
0 commentaires
Voir également
Catégories
En savoir plus sur Numeric Types dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!