I want to compare two data sets at slightly offset times.

1 view (last 30 days)
I have two sets of data, one called "MCA" and one called "Tank". I want to find the datetime where MCA = 10 as long as Tank has been equal to 0 for at least 10 minutes before and after the time MCA = 10. In datenum format, this corresponds to a time difference of +- 0.01. Is there a simple way to do this?
  9 Comments
Kyle Reagan
Kyle Reagan on 21 Jun 2017
Here is the an example of the issue. I get a vector of dates (in datenum format) for MCA that looks as follows.
datesMCA =
1.0e+05 *
7.3685
7.3686
7.3686
7.3686
7.3686
7.3686
7.3686
7.3686
7.3687
This array consists of all the dates when MCA = 10. There are 3 separate events here (First one is at 7.3685 and lasts very briefly, next is at 7.3686 and lasts a few mins, and last one is at 7.3687 and lasts briefly). Now, over the same time period (the month of June), I get an array of dates when Tank = 1. This is seen below. What I want to do is see for each value in datesMCA whether there is a value in datesTank close to it or not (within a few minutes).
datesTank =
7.3685e+05
dpb
dpb on 21 Jun 2017
Edited: dpb on 21 Jun 2017
Not enough precision there to tell the difference but I think I now grok the issue. I'd first suggest switching to the new datenum class instead of datenum.
The list above is only three different values at that resolution; using datestr instead would show the underlying times...
Based on the description albeit not sufficient data to try it, if you have R2015a or later, see
doc uniqeutol
which might just solve your problem in a one-liner. What the doc doesn't say (and I can't test as don't have that recent a release) is whether it will work on datetime inputs or not. Since datenum is just a double, however, it will work on it which is what you've got at the moment anyway. Set the tolerance at 10/(24*60) and 'DataScale',1 to make absolute comparison. The key question is how do we "know" there are three separate events in the data? That's where we need to have the whole set of information available to use in the solution, not just this list of times...

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!