1
我正在写一个函数,它需要一个我指定为Julian日期的日期的输入向量和一个值的范围(作为向量)。在函数中,我使用预定义的窗口大小来删除数据中的任何nans。例如:当求平均数据时找到合适的窗口大小大小
t = transpose(1/24:1/24:40);
data1 = 1+(30-1).*rand(length(t),1);
Randm = floor(1+(length(t)-1).*rand(120,1));
data1(Randm) = nan;
figure(1);
plot(data1,'linewidth',3);
hold on;
dailyData = reshape(data1,40,[]);
nanMap = isnan(dailyData);
validValuesPerDay = sum(~nanMap, 2);
nonNanData = dailyData;
nonNanData(nanMap) = 0;
sumPerDay = sum(nonNanData, 2);
dailyMeans = sumPerDay ./ validValuesPerDay;
dailyMeans = repmat(dailyMeans, [1 24]);
repairedData = dailyData;
repairedData(nanMap) = dailyMeans(nanMap);
data1 = reshape(repairedData,[],1);
plot(data1,'--r');
是如何应对数据我现在面临的问题是不同分辨率的每小时例如每日或每周,因为这将影响我使用重塑时的代码。有没有人有如何处理这个问题的建议?我正在考虑按照指定窗口大小(这是我使用重塑时的意思)作为数据长度的一部分来做一些事情。