如下面的代码所示,我目前正在生成数字,从Normal Distribution
开始,并选择-3*sigma
和3*sigma
区间内的数字。但是,我现在想要生成数字,以便选择-3*sigma
和3*sigma
区间以外的数字的概率较高。例如。 [-4*sigma -3*sigma)
中的数字应具有35%
被选中的概率,并且对于[3*sigma 4*sigma)
应该具有相同的概率。 基本上,我会多次调用这个函数,并且想知道是否有一种方法可以让我从正态分布的“尾部”中选择更高比例的随机数,而不会实际改变正态分布的形状。我正在努力做到这一点。Matlab:从给定概率的正态分布中生成随机数
function [new_E11, new_E22] = elasticmodulusrng()
new_E11 = normrnd(136e9,9.067e9,[1 1]);
new_E22 = normrnd(8.9e9,2.373e9,[1 1]);
while new_E11<=-3*9.067e9 && new_E11>=3*9.067e9
new_E11 = normrnd(136e9,9.067e9,[1 1]);
end
while new_E11<=-3*2.373e9 && new_E11>=3*2.373e9
new_E22 = normrnd(8.9e9,2.373e9,[1 1]);
end
感谢
但在那情况下,它不会是一个正常的分配了。你想如何改变它的形状? –
我基本上想要为'new_E11'生成正态分布,例如,使用均值136e9和S.D. 9.067e9,然后我想从间隔[-4 * sigma -3 * sigma)和[3 * sigma 4 * sigma)中选择一个概率为35%的点。这可能吗? – Jojo
这些点的概率由分布的形状决定,并且比这小得多。 –