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?

 Akzeptierte Antwort

Wayne King
Wayne King am 27 Mai 2012

1 Stimme

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Random Number Generation finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by