matlab添加到矢量

时间:2012-02-15 10:38:37

标签: matlab vector

 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)。

这可以通过手动移动值来轻松完成,但我希望更多 有效的方法。如果我不清楚,请告诉我。

2 个答案:

答案 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;