将矢量归一化为零

时间:2013-04-26 14:53:27

标签: math language-agnostic normalization divide-by-zero

我正在设计一个新的传感器,所以我有一个测量值矢量和一个真值矢量。为了表示错误,它只是measured - truth。由于事实上存在很多变化,我想表示规范化的错误。我最初的想法是error./truth来获得百分比误差,但在很多情况下我的真值是零!谁能想到一种更好的方法来表示规范化数据,同时避免被零除?我在Matlab工作,虽然问题也与语言无关。

PS,如果您觉得它更适合,可以随意将其推送到另一个stackexchange

2 个答案:

答案 0 :(得分:0)

为每个向量尝试error = (measured-truth)/norm2(truth)

其中norm2()是非常规的标准。

norm2(x) =SQRT( SUM( x[i]^2, i=1..N ) )

这只能失败,truth的所有值都为零。您可以通过在标准中添加一个小的正数(如1e-12)来缓解此问题,或者在标准小于阈值数时避免除法。

答案 1 :(得分:0)

我建议你将结果与零(或小于10e-6)真值向量和非零真值向量分开。你不能用同样的方法对待它(因为你不能规范化真值向量),你应该定义在这种情况下要做什么。
我不能建议你具体的东西,因为我不知道问题陈述,但你应该自己定义如何处理它。或者如果你在这里发布你的问题,我希望我们可以帮助你。