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?

 Réponse acceptée

Wayne King
Wayne King le 27 Mai 2012

1 vote

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 commentaires

Nuchto
Nuchto le 27 Mai 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 le 27 Mai 2012
They're in ans.
Nuchto
Nuchto le 27 Mai 2012
ANS is just a value (1), is not an array of values that add up to zero.
Oleg Komarov
Oleg Komarov le 27 Mai 2012
My mistake, ans proves that the x values are normalized to a unit L2 norm.
Nuchto
Nuchto le 27 Mai 2012
when I sum(x) after the second line, the sum doesn't add up to 1.
Nuchto
Nuchto le 30 Mai 2012
Help!!!
Oleg Komarov
Oleg Komarov le 30 Mai 2012
x./sum(x)
Now, this is not a unit norm normalization (as I understand it, thus nobody answered earlier).
Nuchto
Nuchto le 1 Juin 2012
What is a unit norm normalization as you understand it?
Kye Taylor
Kye Taylor le 1 Juin 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 le 1 Juin 2012
"same as the following
normX = x/norm(x,1)"
IF all x >0.
Nuchto
Nuchto le 2 Juin 2012
Thanks, it works now. What is in lay terms :) the difference between l1 and l2 norm?
Oleg Komarov
Oleg Komarov le 2 Juin 2012
http://en.wikipedia.org/wiki/Norm_%28mathematics%29, Euclidean vs taxicab

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Random Number Generation dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by