makedist离散均匀分布

6视图(30天)
嗨,所有
我想创建一个统一的离散分布,用5值(20%概率),通过使用makedist命令
然而,我有些困惑的边界。
我的价值观,我想是:20、25、30、35岁,40岁
你能请帮助吗?
谢谢
的派遣

接受的答案

杰夫•米勒
杰夫•米勒 2018年11月29日
MATLAB似乎只会给你随机整数1 . .任何你想要的K K,所以您必须将这些转换成你想要的值,例如:
randi myrandoms = 15 + (5100 1) * 5% 100矢量随机数从你的设置

更多的答案(2)

图像分析
图像分析 2018年11月30日
这可能不是你想要的,但是下面的代码会给你这5个数字,数组中随机发生的位置。和概率肯定会完全在每一本20%。 完全 20%, 没有变化 在计数,因为我们不使用兰迪()。然而不是随机的值——他们正是你说——你不会得到的数是832 25,803 30,799年35岁,等。你会得到相同的计数。您可以指定 在每一本20%(这可能是你想要的,在这种情况下,你用兰迪像杰夫一样) 你可以指定你想要的 完全 20%是每个数字(我所做的)。
%定义的值。
specifiedValues = [40] 20、25、30、35
%复印
numCopies = 300;%多少你想生成值。
distributionValues = repmat (specifiedValues [1, numCopies]);
%可选:争夺(随机)订单。
sortingOrder = randperm(长度(distributionValues));
distributionValues = distributionValues (sortingOrder);
%证明正是100%分布均匀(相同的计算在每一本)。
直方图(distributionValues);
网格;
xticks (specifiedValues);
包含(“价值”);
ylabel (“数”);
0000年Screenshot.png

乔纳森·休厄尔
乔纳森·休厄尔 2019年11月25日
编辑:乔纳森·休厄尔 2019年11月25日
一个函数,达到你想要的随机抽样效应是randsample ()。
从指定的人口获得一个随机样本,用这个。
randsample ([20 25 30 35 40], 1)
10个随机抽样,用这个。
randsample ([20 25 30 35 40] 10 1)
我不知道如何得到这种效果的调用makedist ()。但是,您可以创建自己的像对象分布对象返回的makedist ()。这将创建一个类。它需要ProbabilityDistribution的子类,并且可能UnivariateDistribution或TruncatableDistribution的一个子类。这些类是makedist使用共享数据库的一部分。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的