我正在设计一个新的传感器,所以我有一个测量值向量和一个真值向量。为了表示错误,它很简单measured - truth
。由于事实有很多变化,我想代表归一化错误。我最初的想法是error./truth
获得百分比错误,但在很多情况下我的真值为零!谁能想到一种更好的方法来表示标准化数据,同时避免被零除?我在 Matlab 工作,尽管这个问题也有点与语言无关。
PS,如果您认为它更适合,请随时将其推送到另一个 stackexchange
我正在设计一个新的传感器,所以我有一个测量值向量和一个真值向量。为了表示错误,它很简单measured - truth
。由于事实有很多变化,我想代表归一化错误。我最初的想法是error./truth
获得百分比错误,但在很多情况下我的真值为零!谁能想到一种更好的方法来表示标准化数据,同时避免被零除?我在 Matlab 工作,尽管这个问题也有点与语言无关。
PS,如果您认为它更适合,请随时将其推送到另一个 stackexchange
尝试error = (measured-truth)/norm2(truth)
每个向量。
norm2()
宽容的规范在哪里。
norm2(x) =SQRT( SUM( x[i]^2, i=1..N ) )
这只能失败是所有的值truth
都为零。您可以通过向范数添加一个小的正数来缓解这种情况1e-12
,或者在范数小于阈值时避免除法。
我建议您将结果与零(或例如小于 10e-6)真值向量和非零真值向量分开。您不能以相同的方式对待它(因为您无法标准化真值向量),您应该定义在这种情况下要做什么。
我不能建议你具体的东西,因为我不知道问题陈述,但你应该自己定义如何处理它。或者,如果您在这里发布您的问题,我希望我们可以帮助您。