MATLAB中经验累积分布函数生成随机数
我通过MATLAB生成了一个经验累积分布函数MATLAB中经验累积分布函数生成随机数,matlab,Matlab,我通过MATLAB生成了一个经验累积分布函数 x = [1, 1.2, ..., 1] [myECDF, xi] = ecdf(x); 现在我想用这个ECDF作为基础,从中提取一组随机数。例如,我想这样做: y = random(myECDF, 10); // drawing 10 random numbers from ECDF 这在MATLAB中可能吗?您可以使用反向CDF方法。生成0和1之间的均匀分布随机变量,并将其视为CDF输出。然后用你的经验分布找出相应的值 function m
x = [1, 1.2, ..., 1]
[myECDF, xi] = ecdf(x);
现在我想用这个ECDF作为基础,从中提取一组随机数。例如,我想这样做:
y = random(myECDF, 10); // drawing 10 random numbers from ECDF
这在MATLAB中可能吗?您可以使用反向CDF方法。生成0和1之间的均匀分布随机变量,并将其视为CDF输出。然后用你的经验分布找出相应的值
function my_x = my_random(myECDF, xi, N)
% Generate N uniformly distributed samples between 0 and 1.
u = rand(N,1);
% Map these to the points on the empirical CDF.
my_x = interp1(myECDF, xi, u, 'linear');
end
谢谢,这正是我需要的!