How to find a gap in a table

5 views (last 30 days)
Carolina
Carolina on 5 Feb 2023
Commented: Image Analyst on 5 Feb 2023
Hi. I am doing a project and need to analyze a long series of data. In this data I have dates and times, however I need to find the rows of missing times and delete the next data, I will explain with an example.
Date Hour
10-02-2013 00:00
10-02-2013 01:00
10-02-2013 02:00
10-02-2013 03:00
10-02-2013 05:00
10-02-2013 06:00
10-02-2013 07:00
I have hours from 00 to 23. In this case, for example, the hour relative to 4 a.m. is missing, how do I identify these gaps over several columns and delete the next record?
  1 Comment
the cyclist
the cyclist on 5 Feb 2023
The difficult part of this is probably not the MATLAB coding; it's defining the exact rule to be used to identify the gaps. (I don't mean the coding of the rule, just the explanation of the exact rule.)
Can upload the data (or a representative subset), and tell us the exact rule?

Sign in to comment.

Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 5 Feb 2023
If understood your qyestion correctly, you are trying to remove the rows of data in any row there is a missing data. If so, use:
ismissing() or isnan(), and assign those row to [ ]. E.g.:
D = readtable('D_tab.txt'); % Sample data is attached
D(ismissing(D{:,2}),:)=[]
  1 Comment
Image Analyst
Image Analyst on 5 Feb 2023
In his example 4:00 was not even in the table at all, so ismissing won't detect it. I think you need to use diff

Sign in to comment.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!