显示 更早的评论
I have a variable containing a probability distribution (just an one-dimensional array of values). How can I normalize a to unit norm?
采纳的回答
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 个评论
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.
They're in ans.
ANS is just a value (1), is not an array of values that add up to zero.
My mistake, ans proves that the x values are normalized to a unit L2 norm.
when I sum(x) after the second line, the sum doesn't add up to 1.
Help!!!
x./sum(x)
Now, this is not a unit norm normalization (as I understand it, thus nobody answered earlier).
What is a unit norm normalization as you understand it?
"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.
"same as the following
normX = x/norm(x,1)"
IF all x >0.
Thanks, it works now. What is in lay terms :) the difference between l1 and l2 norm?
http://en.wikipedia.org/wiki/Norm_%28mathematics%29, Euclidean vs taxicab
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Random Number Generation 的更多信息
标签
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
