如何从Matlab中的Cauchy分布中绘制随机数

时间:2017-04-17 15:06:37

标签: matlab random distribution

我知道可以从Normal Distribution中抽取随机数,如下所示

normrnd(mu, sd)

其中mu=meansd=standard deviation

但是我们如何从给定Cauchy Distributionlocation parameter的{​​{1}}中抽取一个随机数,因为matlab中没有可用的内置函数。有关Cauchy分布的详细信息,请参阅Link1Link2

2 个答案:

答案 0 :(得分:1)

如果你知道cdf,你总是可以编写自己的函数。

function x = cauchy_dist(location_parameter, scale_parameter)
p_cdf = rand(); %uniform random from 0->1, since cdf by definition 0->1
x = location_parameter + scale_parameter*tan(pi*(p_cdf-0.5)); %solve cdf eqn for x

答案 1 :(得分:0)

根据here给出的解释,您可以使用以下转换从统一随机数中获取Cauchy分布随机数:

r = tan(pi*(rand()-0.5))