我正在做一个项目,我试图找到温度超过 90% 的多日事件。
我正在使用 61 年的数据并尝试根据 6 月至 8 月之间的每个月计算百分位数。换句话说,使用该prctile
函数,我想计算 6 月、7 月和 8 月的第 90 个百分位,并根据该月的第 90 个百分位值比较每个月的每日温度值。
最终,我希望程序根据该月的值找到温度超过第 90 个百分位值的日期字符串(2 天、3 天、4 天、5 天等)。
以下是我到目前为止的代码:
fprintf('Loading the data...\n')
load file_name.txt
year=file_name(:,1);
month=file_name(:,2);
day=file_name(:,3);
temax=file_name(:,6);
temin=file_name(:,9);
molen=[30 31 31];
for y=1:61
for m=6:8
for k=1:molen
g1=find(year==y+1950&month==m&day==k&temax>-99);
g2=find(year==y+1950&month==m&day==k&temin>-99);
end
temaxpct=prctile(temax(g1),90);
teminpct=prctile(temin(g2),90);
end
clear g*
end
exceedence=find(year&month&day&temax>=temaxpct&temin>=teminpct);
我不知道如何让程序计算每个月的第 90 个百分位(而不是 6 月至 8 月的整个 3 个月范围)。
此外,我不知道如何让程序找到温度超过 90% 的日期字符串,特别是因为 4 天事件还包括 3 天事件和 2 天事件。
我知道需要一些 if/else 语句,但我不确定如何设置它。