Normalize to unit norm

I have a variable containing a probability distribution (just an one-dimensional array of values). How can I normalize a to unit norm?

 Respuesta aceptada

Wayne King
Wayne King el 27 de Mayo de 2012

1 voto

If you want to normalize a vector to have unit L2 norm.
x = randn(100,1);
x = x./norm(x,2);
norm(x,2)

12 comentarios

Nuchto
Nuchto el 27 de Mayo de 2012
Thanks, Wayne, for your quick reply :) However, I don't understand. My values in x should add up to 1, but I can't find the new array of elements in x with the new values that would add up to 1.
Oleg Komarov
Oleg Komarov el 27 de Mayo de 2012
They're in ans.
Nuchto
Nuchto el 27 de Mayo de 2012
ANS is just a value (1), is not an array of values that add up to zero.
Oleg Komarov
Oleg Komarov el 27 de Mayo de 2012
My mistake, ans proves that the x values are normalized to a unit L2 norm.
Nuchto
Nuchto el 27 de Mayo de 2012
when I sum(x) after the second line, the sum doesn't add up to 1.
Nuchto
Nuchto el 30 de Mayo de 2012
Help!!!
Oleg Komarov
Oleg Komarov el 30 de Mayo de 2012
x./sum(x)
Now, this is not a unit norm normalization (as I understand it, thus nobody answered earlier).
Nuchto
Nuchto el 1 de Jun. de 2012
What is a unit norm normalization as you understand it?
Kye Taylor
Kye Taylor el 1 de Jun. de 2012
"Unit norm" itself is not well-defined without specifying the norm itself.
@Nuchto, it sounds like you are looking for the l1 norm, while the initial answer provided by @Wayne is using the l2 norm...
As @Oleg suggested, you can normalize by the sum to obtain the same as the following
normX = x/norm(x,1)
Be careful if simply normalizing by the sum because it doesn't account for negative values in the original vector. However, since you are working with a probability distribution, that isn't an issue.
Oleg Komarov
Oleg Komarov el 1 de Jun. de 2012
"same as the following
normX = x/norm(x,1)"
IF all x >0.
Nuchto
Nuchto el 2 de Jun. de 2012
Thanks, it works now. What is in lay terms :) the difference between l1 and l2 norm?
Oleg Komarov
Oleg Komarov el 2 de Jun. de 2012
http://en.wikipedia.org/wiki/Norm_%28mathematics%29, Euclidean vs taxicab

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Random Number Generation en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 27 de Mayo de 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by