Effacer les filtres
Effacer les filtres

Why NaN even though all elements considered

1 vue (au cours des 30 derniers jours)
Abhishek H P
Abhishek H P le 25 Mai 2016
Modifié(e) : Stephen23 le 25 Mai 2016
I am comparing every column with other columns but getting the answer in R(4,2) and R(3,1)
for i=1:nrow-1
a=data(1,i);
c=data(2,i);
e=data(3,i);
g=data(4,i);
for j=[1:i-1,i+1:nrow]
b=a-data(1,j);
d=c-data(2,j);
f=e-data(3,j);
h=g-data(4,j);
kU=b'*b;
kL=d'*d;
pU=f'*f;
pL=h'*h;
S=(kU'*kU+kL'*kL)/(kU+kL)+(pU'*pU+pL'*pL)/(pU+pL);
R(i,j) = S;
R(j,i) = S;
end
end
end
trial(A)
ans =
0 1.8299 NaN 1.8299
1.8299 0 1.8299 NaN
NaN 1.8299 0 1.8299
1.8299 NaN 1.8299 0
when the input
A = 2.0000 2.2000 2.0000 2.2000
3.0000 3.1000 3.0000 3.1000
2.0000 2.2000 2.0000 2.2000
3.0000 3.1000 3.0000 3.1000
  2 commentaires
Stephen23
Stephen23 le 25 Mai 2016
Modifié(e) : Stephen23 le 25 Mai 2016
Your algorithm divides zero by zero. This happens for these pairs of (i,j): (1,3), (2,4), (3,1). What do you expect division of zero by zero to do?
Roger Stafford
Roger Stafford le 25 Mai 2016
Actually it is zero divided by zero that is producing the NaNs here. A non-zero divided by zero will produce inf or -inf,

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Performance and Memory 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!

Translated by