1

当我运行一些代码时,我必须将向量的元素相加,然后重新规范化。我得到 NaN 所以我希望能解决这个问题。

例如,i 何时x = [1,2,3]计算vector<double>,然后通过设置x 中的所有 i 来sum(x) = 6找出是什么。问题是 x 通常持有大的双打,有时当我计算时也非常大)我得到 NaN。我该如何处理这个问题,这样我就不会得到 NaN?x/6x[i] = x[i]/sum(x)sum(x) (len(x)

将其更改为存储 long double 可能有效?

4

2 回答 2

0

Check the data in the original vector. Some of them are probably NaN before the sum, and as a result you have sum(x)=NaN.

于 2013-05-21T19:04:50.073 回答
0

您是否已验证您的向量不带 NaN?顺便说一句-您使用的“规范”对于任意向量不是非负的,您确定不想对 abs(x[i]) 求和吗?

于 2013-05-21T17:14:16.783 回答