What does it mean to normalize an array?

Lucas Alanis picture Lucas Alanis · May 14, 2014 · Viewed 16.1k times · Source

I need to normalize an array that contains values between 0 to 1024 into an array that will contain values between 0-255. I am doing this in Java but I am wanting to understand what exactly does it mean to "normalize an array" rather than asking for exact code.

Answer

peter.petrov picture peter.petrov · May 14, 2014

To normalize a vector in math means to divide each of its elements
to some value V so that the length/norm of the resulting vector is 1.
Turns out the needed V is equal to the length (norm) of the vector.

Say you have this array.

[-3, +4]

Its length (in Euclid metric) is: V = sqrt((-3)^2 + (+4)^2) = 5

So its corresponding normalized vector is:

[-3/5, +4/5]

Its length is now: sqrt ( (-3/5)^2 + (+4/5)^2 ) which is 1.

You can use another metric (e.g. I think Manhattan distance)
but the idea is the same. Divide each element of your array
by V where V = || your_vector || = norm (your_vector).

So I think this is what is meant here.

See also:

http://www.fundza.com/vectors/normalize/

http://mathworld.wolfram.com/NormalizedVector.html