这是 sqrt 和 atan2 函数的定义域出错了,例如负数开方,NaN 开方,等等。
看起来 p=(x(i)-x(j))**2+(y(i)-y(j))**2 应该是大于等于0 的,不会出现负数开方。但如果 x y 本身就出现了 NaN,那么也会使得 p 为 NaN,导致 sqrt 定义域出错。
玩计算的话,Debug 调试是基本功,在 sqrt 处下断点,然后看看 x y 数组里是否出现了 NaN。
单步调试,你会自己解决很多问题。
因为你没给出全部代码,所以我不能代劳。
x(i)、y(i) 表示什么?都定义了吗?