我知道可以从Normal Distribution
中抽取随机数,如下所示
normrnd(mu, sd)
其中mu=mean
和sd=standard deviation
但是我们如何从给定Cauchy Distribution
和location parameter
的{{1}}中抽取一个随机数,因为matlab中没有可用的内置函数。有关Cauchy分布的详细信息,请参阅Link1和Link2。
答案 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))