CDF 图不是从零开始的
CDF plot doesn't start from zero
我试图通过调用 cdfplot(x)
函数来绘制数据的 cdf 曲线。这是我的部分代码:
figure;
for i=1:length(num_curves)
h = cdfplot(10*log10(plot_vec1(:,i)));
set(h,'Linewidth',2,'Color',cc(i,:),'Linestyle','-');
hold on
%set(color, cc(i,:));
end
不幸的是,我得到的结果非常混乱。
黄色和紫色曲线从非零值开始,但 CDF 曲线应始终从零开始!
谁能给我一些建议?我试图自己绘制黄色曲线,但它仍然是 'biased'。
谢谢你的帮助!
问题是您的数据 plot_vec1
包含零。当您使用 10*log10()
转换为 dB 时,这些零将转换为 -inf
。然后 cdfplot
看到最小有限值(在你的黄色曲线中大约 -67
)下面有许多样本(值为 -inf
)。这就是它在那里给出非零累积概率的原因。
比如比较这两个数字
正常情况,所有值都是有限的:
cdfplot([1 2 3 4 5 6])
部分值为-inf
:
cdfplot([-inf -inf 3 4 5 6])
此处的最小有限值 3
具有 0.33
累积概率,显示在垂直轴上。这是因为 6 个样本中有 2 个是 - inf
,因此低于 3
:
可能的解决方法:在应用对数之前删除那些零,或者用一个非常小的 dB 值替换结果 -inf
,例如 -100
.
我试图通过调用 cdfplot(x)
函数来绘制数据的 cdf 曲线。这是我的部分代码:
figure;
for i=1:length(num_curves)
h = cdfplot(10*log10(plot_vec1(:,i)));
set(h,'Linewidth',2,'Color',cc(i,:),'Linestyle','-');
hold on
%set(color, cc(i,:));
end
不幸的是,我得到的结果非常混乱。
黄色和紫色曲线从非零值开始,但 CDF 曲线应始终从零开始! 谁能给我一些建议?我试图自己绘制黄色曲线,但它仍然是 'biased'。 谢谢你的帮助!
问题是您的数据 plot_vec1
包含零。当您使用 10*log10()
转换为 dB 时,这些零将转换为 -inf
。然后 cdfplot
看到最小有限值(在你的黄色曲线中大约 -67
)下面有许多样本(值为 -inf
)。这就是它在那里给出非零累积概率的原因。
比如比较这两个数字
正常情况,所有值都是有限的:
cdfplot([1 2 3 4 5 6])
部分值为
-inf
:cdfplot([-inf -inf 3 4 5 6])
此处的最小有限值
3
具有0.33
累积概率,显示在垂直轴上。这是因为 6 个样本中有 2 个是- inf
,因此低于3
:
可能的解决方法:在应用对数之前删除那些零,或者用一个非常小的 dB 值替换结果 -inf
,例如 -100
.