获得矩阵的百分位数95然后绘制它

问题描述 投票:1回答:1

编辑:我被要求添加更多细节。最初我有一个360x180矩阵,其中有EP值数据,这些值代表蒸发(E)和降水(P),它们基本上表示水分来源(EP> 0)和水槽(EP <0) 。为了获得最重要的水分来源,我必须只取正值,我想得到这些值的百分位数95,然后绘制高于这个阈值的值,因为我想做一个可重复的例子我使用了peaks数据:

我在MATLAB中做过这个,但是如果它可以在R上制作,它也适用于我。

我有一个像这样的49x49矩阵示例:

a = peaks; 
pcolor(a);
caxis([-10 10]); 
cbh=colorbar('v');
set(cbh,'YTick',(-10:1:10))

它显示了像这样的enter image description here

我想要做的是获得只有正值的百分位数95,然后绘制它们。

我怎样才能做到这一点?还有什么会更好:用0或Nan取代所有小于零的值?

r matlab statistics quantile
1个回答
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);

qazxsw poi是qazxsw poi中具有所有正值的向量。 qazxsw poi是这个载体的第95百分位数。

a(a>0)

© www.soinside.com 2019 - 2024. All rights reserved.