如何从 Matlab 中的柯西分布中提取随机数
How to draw random number from a Cauchy Distribution in Matlab
我知道可以从 Normal Distribution
中提取随机数,如下所示
normrnd(mu, sd)
其中 mu=mean
和 sd=standard deviation
但是我们如何从 Cauchy Distribution
中抽取一个随机数给定 location parameter
和 scale parameter
,因为 matlab 中没有可用的内置函数。有关柯西分布的详细信息,请参阅 Link1 and Link2。
如果你知道 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
根据给出的解释here,您可以使用以下变换从均匀随机数得到柯西分布随机数:
r = tan(pi*(rand()-0.5))
我知道可以从 Normal Distribution
中提取随机数,如下所示
normrnd(mu, sd)
其中 mu=mean
和 sd=standard deviation
但是我们如何从 Cauchy Distribution
中抽取一个随机数给定 location parameter
和 scale parameter
,因为 matlab 中没有可用的内置函数。有关柯西分布的详细信息,请参阅 Link1 and Link2。
如果你知道 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
根据给出的解释here,您可以使用以下变换从均匀随机数得到柯西分布随机数:
r = tan(pi*(rand()-0.5))