Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中经验累积分布函数生成随机数_Matlab - Fatal编程技术网

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

我通过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 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

谢谢,这正是我需要的!