Math 将向量归一化为零

Math 将向量归一化为零,math,language-agnostic,normalization,divide-by-zero,Math,Language Agnostic,Normalization,Divide By Zero,我正在设计一个新的传感器,所以我有一个测量值向量和一个真值向量。为了表示错误,它只是measured-truth。因为事实上有很多变化,我想表示标准化的误差。我最初的想法是error./truth以获得百分比误差,但在很多情况下,我的真值为零!有人能想出更好的方法来表示规范化数据,同时避免被零除吗?我在Matlab中工作,尽管这个问题也有点语言不可知 PS,如果您认为它更适合每个向量,请随意将其推到另一个堆栈交换尝试错误=(测量的真实值)/norm2(真实值) 其中,norm2()是宽容的规范

我正在设计一个新的传感器,所以我有一个测量值向量和一个真值向量。为了表示错误,它只是
measured-truth
。因为事实上有很多变化,我想表示标准化的误差。我最初的想法是
error./truth
以获得百分比误差,但在很多情况下,我的真值为零!有人能想出更好的方法来表示规范化数据,同时避免被零除吗?我在Matlab中工作,尽管这个问题也有点语言不可知

PS,如果您认为它更适合每个向量,请随意将其推到另一个堆栈交换

尝试
错误=(测量的真实值)/norm2(真实值)

其中,
norm2()
是宽容的规范

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

如果
真值
的所有值均为零,则此操作只能失败。您可以通过在范数中添加一个小的正数(如
1e-12
)来缓解这种情况,或者在范数小于阈值时避免除法。

我建议您将结果与零(或小于10e-6,例如)真值向量和非零真值向量分开。你不能用同样的方法来处理它(因为你不能规范化真值向量),你应该定义在这种情况下该怎么做。

我不能给你具体的建议,因为我不知道问题陈述,但你应该自己定义如何处理它。或者,如果您将问题发布在这里,我希望我们能帮助您。

这一切真正做的就是用相同的数字缩放我的所有值。我想用每个测量点对应的真值点来缩放每个测量点。如果你的真值点可以是
0
,你不可能总是得到你想要的。所以,试着花点时间重新思考你真正需要什么…@DavidK-不要那样做。这将是非常不稳定的,误差估计也将是遥不可及的。最好根据标准值(典型值、norm2()或max()或任意值)标准化差异。