Получение процентиля 95 матрицы и ее построение - PullRequest
1 голос
/ 09 марта 2019

EDIT: Меня попросили добавить больше деталей. Изначально у меня есть матрица 360x180, и в ней есть данные значений EP, эти значения обозначают испарение (E) и количество осадков (P), и они в основном указывают источники (EP> 0) и поглотители (EP <0) влаги. , Чтобы получить наиболее важные источники влаги, мне нужно взять только положительные значения, и я хочу получить процентиль 95 из этих значений, а затем нанести на график значения, которые выше этого порога, поскольку я хотел сделать воспроизводимый пример I использовали данные <code>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 только положительных значений, а затем построить их.

Как я могу это сделать? а также, что было бы лучше: заменить все значения меньше нуля нулями или числами Нана ??

1 Ответ

0 голосов
/ 11 марта 2019

Если у вас есть набор инструментов статистики, вы можете использовать функцию prctile, чтобы получить процентиль.У меня нет этого набора инструментов, поэтому я написал свою собственную версию (давно) на основе кода для функции medianprctile или 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-й процентиль этого вектора.

output of code above

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...