编辑:
我被要求补充更多细节。最初我有一个360x180的矩阵,里面有EP值的数据,这些值分别代表蒸发量(E)和降水量(P),它们基本上表示水分的来源(EP> 0)和下沉的(EP <0) 。为了获得最重要的水分源,我只需要取正值,并且我想获得这些值的百分位数95,然后绘制高于此阈值的值,因为我想做一个可重现的示例I使用了peaks
数据:
我已经在MATLAB中完成了此操作,但是如果可以在R中完成,那么它对我也适用。
我有一个示例49x49矩阵,如下所示:
a = peaks;
pcolor(a);
caxis([-10 10]);
cbh=colorbar('v');
set(cbh,'YTick',(-10:1:10))
的内容
我要做的是获取仅正值的百分位数95,然后绘制它们。
我该怎么做?而且还有什么更好的方法:用0或Nan替换所有小于零的值?
答案 0 :(得分:0)
如果具有统计信息工具箱,则可以使用函数prctile
获得百分位数。我没有这个工具箱,所以我写了my own version (a long time ago) based on the code for the function median
。使用prctile
或percentile
,您可以执行以下操作:
a = peaks;
t = percentile(a(a>0),95);
b = a > t;
subplot(1,2,1)
pcolor(a);
subplot(1,2,2)
pcolor(b);
a(a>0)
是在a
中具有所有正值的向量。 t
是此向量的第95个百分点。