Why NaN even though all elements considered

조회 수: 1 (최근 30일)
Abhishek H P
Abhishek H P 2016년 5월 25일
편집: Stephen23 2016년 5월 25일
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
Stephen23
Stephen23 2016년 5월 25일
편집: Stephen23 2016년 5월 25일
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 2016년 5월 25일
Actually it is zero divided by zero that is producing the NaNs here. A non-zero divided by zero will produce inf or -inf,

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by