Incomplete time series, how to fill in NaN in data column?
2 次查看(过去 30 天)
显示 更早的评论
Hi
I have a time series consisting of date, time, longitude and latitude. Due to errors there are gaps in my date/time but the data just continue at the next date when a position is registered. What I want is to get a complete time serie (for a year) with NaN values in Long and Lat columns when a position is missing. The data is registerede (when no errors) every three hours, so I have constructed a Date/Time vector using datenum, with values every three hours, so 2920 values (8*365) for a whole year. Now I want to put in NaN in my Long and Lat on the times that matches the errors - how can I do that? I have looked at similar questions in here, but they all seem to be a bit different or just wanting to fill in NaN in the time column.
Here is a couple of lines from my data:
Date, Time, Lat, Long, Voltage(V)
01-30-2014,18:00:33,73.09214,-54.11712,N/A
01-30-2014,21:00:33,73.09213,-54.11710,N/A
01-31-2014,00:00:34,73.09212,-54.11719,N/A
02-24-2014,00:00:33,73.09113,-54.12063,N/A
02-24-2014,03:00:33,73.09112,-54.12063,N/A
02-24-2014,06:00:33,73.09113,-54.12068,N/A
So what i want is to fill in the dates from 02-01-2014 to 02-23-2014 with date and time (I have done that) and then fill in NaN in the Long and Lat columns.
Would be gratefull for help...
0 个评论
采纳的回答
Ingrid
2016-2-1
you could just first create a NaN matrix and then fill in your original values at the dates that you have them available
newData = nan(length(timeVector),2);
[~,Ia,Ib] = intersect(round(originalData(:,1:2)*100),round(timeVector*100));
newData(Ib,:) = originalData(Ia,3:4);
2 个评论
Ingrid
2016-2-1
If this helped you, could you please accept the answer so that it is marked as solved so other people know this no longer requires an answer. Thank you
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!