我有一个小数据集,并希望构建一个允许我在一个列中运行的迭代循环(在此阶段循环对我来说更直观)并使用结果在同一个表中构造一个新列。
我的tallard.txt
文件:
Date - precipitation
1/1/2012 - 4
1/2/2012 - 1
1/3/2012 - 3
1/4/2012 - 0
1/5/2012 - 1
1/6/2012 - 0
我需要将每日降水量加起来并分配到中位数日期,这样我就可以确定降雨事件(多天)的降水量,因此建议的列最终会像这样:
Date - precipitation
1/1/2012 - 4 - NaN % or 0
1/2/2012 - 1 - 8 % (4+3+1)
1/3/2012 - 3 - NaN % or 0 or original value if that's easier
1/4/2012 - 0 - 0
1/5/2012 - 1 - 1
1/6/2012 - 0 - 0
这就是我到目前为止所做的事情:
clear all
load tallard.txt;
X = 2; % columns
Y = 11416; % rows
counter = 2;
for i = 1:Y
if tallard(counter, 2) >= 1
tallard(counter:Y,2) = tallard(counter,2)+ tallard(counter-1,6);
else
tallard(counter:Y,2) = tallard(counter,2);
end
counter = counter+1;
end
但这仅适用于连续2个降水日,因为这是3天或更长时间,但这并没有成功。数据集包含11000天。
答案 0 :(得分:0)
我不知道我是否理解你的问题。但这是我认为你想要的东西。
'y[0-9]{2,4}m[0-9]{1,2}d[0-9]{1,2}\w*'