clear all
data = rand(8760,1);
n=366;
time=linspace(1+1/24,n,(n-1)*24)';
%day of year
daylims = ([100,300]);
[row1]=find(time > daylims(1) & time < daylims(2));
从上面的例子中我试图选择由'daylims'给出的e时期的数据,然后将该数据拟合到对应于'time'的向量中。找到我需要的数据的行号后,我现在要做的就是用nans包围“数据”,例如第一行是2377所以我想把第1行:2377作为nan,最后一行是7175所以我想制作 第7175行:结束为nan(结束是8760)。
这可以通过手动移动值来轻松完成,但我希望更多 有效的方法。如果我不清楚,请告诉我。
答案 0 :(得分:1)
我经常这样做:
good_data = (time > daylims(1) & time < daylims(2));
data(~good_data)=NaN;
注意我不使用find而是使用逻辑索引。
答案 1 :(得分:0)
你尝试过这种方法吗?
data(1 : 2377) = nan;
data(7175 : end) = nan;