我需要将包含 0 到 1024 之间的值的数组标准化为一个包含 0 到 255 之间的值的数组。我正在用 Java 执行此操作,但我想了解“规范化数组”而不是要求确切的代码究竟意味着什么。
最佳答案
在数学中归一化 vector 意味着将其每个元素相除
到某个值 V 以便结果 vector 的长度/范数为 1。
结果证明所需的 V 等于 vector 的长度(范数)。
假设你有这个数组。[-3, +4]
它的长度(以欧几里德公制为单位)是:V = sqrt((-3)^2 + (+4)^2) = 5
所以其对应的归一化 vector 为:[-3/5, +4/5]
它的长度现在是:sqrt ( (-3/5)^2 + (+4/5)^2 )
这是 1。
您可以使用其他指标(例如,我认为曼哈顿距离)
但想法是一样的。划分数组的每个元素
来自 V
哪里V = || your_vector || = norm (your_vector)
.
所以我认为这就是这里的意思。
也可以看看:
http://www.fundza.com/vectors/normalize/
http://mathworld.wolfram.com/NormalizedVector.html
关于java - 规范化数组是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642694/