我有一個數據集,其中缺少一些時間戳。如下到目前爲止,我已經寫代碼,用NAN填充丟失的時間戳數據行 - MATLAB
x = table2dataset(Testing_data);
T1 = x(:,1);
C1 =dataset2cell(T1);
formatIn = 'yyyy-mm-dd HH:MM:SS';
t1= datenum(C1,formatIn);
% Creating 10 minutes of time interval;
avg = 10/60/24;
tnew = [t1(1):avg:t1(end)]';
indx = round((t1-t1(1))/avg) + 1;
ynew = NaN(length(tnew),1);
ynew(indx)=t1;
% replacing missing time with NaN
t = datetime(ynew,'ConvertFrom','datenum');
formatIn = 'yyyy-mm-dd HH:MM:SS';
DateVector = datevec(ynew,formatIn);
dt = datestr(ynew,'yyyy-mm-dd HH:MM:SS');
ds = string(dt);
測試數據已經在這裏顯示三個參數,
Time x y
2009-04-10 02:00:00.000 1 0.1
2009-04-10 02:10:00.000 2 0.2
2009-04-10 02:30:00.000 3 0.3
2009-04-10 02:50:00.000 4 0.4
現在你可以看到,對於10分鐘的間隔,有遺漏的時間戳(2 :20和2:40),所以我想添加時間戳。然後我想x
和y
值爲NAN
。所以我的輸出會是這樣,
Time x y
2009-04-10 02:00:00.000 1 0.1
2009-04-10 02:10:00.000 2 0.2
2009-04-10 02:20:00.000 NaN NaN
2009-04-10 02:30:00.000 3 0.3
2009-04-10 02:40:00.000 NaN NaN
2009-04-10 02:50:00.000 4 0.4
正如你可以從我的代碼中看到的,我只是能夠增加NaN
帶時間戳,但現在想取我所需的相應x和y的值。
請注意我有超過3000個以上格式的數據行,我想對我的所有值執行相同的操作。
謝謝你。我只是舉了一個例子。它正在工作,但正如我前面所說,我有數據集由6個參數組成(例如x,y,z,a,b,c)。有沒有更簡單的方法(對x和y所做的)對所有這6個參數都是一樣的。意味着每當缺少時間戳時,將NAN加入其時間以及其對應的x,y,z,a,b,c ...? –
我不明白這個問題:你是否想將'NaN'設置爲只有附加參數('z,a,b,c')或時間戳?說:'NaN-NaN-NaN ... NaN NaN NaN'或'2009-04-10 02:40:00 NaN NaN NaN NaN NaN NaN'? –
僅適用於參數。你剛剛寫的代碼我想要的參數不是時間戳相同... –