假设我的数据点为:
a=2.3;
b=5.3;
n=2000; % number of data blocks
data=a+(b-a)*rand(1,1000); % data points
x=[1:.1:7]; % x-axis
如何为这些2000个数据块绘制此数据的互补累积密度函数(CCDF)?任何帮助。
答案 0 :(得分:1)
按照与this answer相同的方法处理类似问题,您可以像这样绘制data
的CCDF:
plot(sort(data), linspace(1-1/length(data), 0, length(data)))
这给出了每个数据点的CCDF值(介于0和1之间),只需计算大于该值的值的比例(即linspace
部分:对于第一个点,所有值都是除了一个,...更大,最后一点没有值更大)。
如果您需要固定的一组x
点的CCDF,请使用the other answer的方法来解决该问题:
x = [1:.1:7];
y = mean(bsxfun(@gt, data.', x));
plot(x, y)
现在y
是大于x
中每个点的值的比例。在这种情况下,必须明确确定比例,并使用bsxfun
高效完成。