Add newer data to older data without repetition

1 view (last 30 days)
Imagine 2 two datasets where column 1 is a timestamp, column 2 is data (can be more columns).
Yesterday i had this:
A = [ 1 2 3 4 5 6 7 ; 435 124 525 342 532 533 213 ]'
Today I get this (Rows each day can vary):
B = [ 5 6 7 8 9 10 ; 532 533 213 988 999 777 ]'
So 5:7 (timestamp) overlaps. Any idea how I can end up connecting those time stamps so I can get this:
C= [ 1 2 3 4 5 6 7 8 9 10 ; 435 124 525 342 532 533 213 988 999 777]'
I want to return all the data in A and B without repeating the data common to both A and B (not just simple concatinating)
Thanks in advance

Accepted Answer

Guillaume
Guillaume on 17 Feb 2018
Edited: Guillaume on 17 Feb 2018
C = union(A, B, 'rows');
Note that your example is neither a timeseries nor a table. Be careful with the terms you use to avoid confusion.
  3 Comments
Guillaume
Guillaume on 17 Feb 2018
No, you were perfectly clear. My brain wasn't engaged properly. I meant to use union instead of intersect.
Fixed now.

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 17 Feb 2018
If you are using R2016b or later, you may find that using timetables is convenient. For example, union works the same way as what Guillaume showed ...
>> A = timetable(seconds([1 2 3 4 5 6 7]'), [435 124 525 342 532 533 213]')
A =
7×1 timetable
Time Var1
_____ ____
1 sec 435
2 sec 124
3 sec 525
4 sec 342
5 sec 532
6 sec 533
7 sec 213
>> B = timetable(seconds([5 6 7 8 9 10]'),[532 533 213 988 999 777]')
B =
6×1 timetable
Time Var1
______ ____
5 sec 532
6 sec 533
7 sec 213
8 sec 988
9 sec 999
10 sec 777
>> union(A,B)
ans =
10×1 timetable
Time Var1
______ ____
1 sec 435
2 sec 124
3 sec 525
4 sec 342
5 sec 532
6 sec 533
7 sec 213
8 sec 988
9 sec 999
10 sec 777
but timetables also bring along a lot of other functionality around "combining data".

Categories

Find more on Tables 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!