MATLAB Answers

Appending data based on same dates

1 view (last 30 days)
Lee on 27 Aug 2018
Answered: BasO on 12 Nov 2018
I have two long tables. The first table (A) has two columns. The first indicates a date and the second indicates a value. A sample of the table is illustrated below:
A =
06-Jun-2015 00:00:00 1
07-Jun-2015 00:00:00 6
08-Jun-2010 00:00:00 1
08-Jun-2011 00:00:00 1
09-Jun-2010 00:00:00 52
09-Jun-2011 00:00:00 1
The second table contains a sample id and dates.
B =
"ahfeog" '08-Jun-2011 06:00:00'
"ahegao" '09-Jun-2010 21:00:00'
"agejho" '07-Jun-2015 03:00:00'
"ehagoa" '06-Jun-2015 06:00:00'
"eozjmv" '06-Jun-2015 18:00:00'
Ignoring the times, I want to be able to append the two tables together based on the date. My problem is that table B is significantly larger than table A and has repeat dates. Ideally my output would look like this:
Out =
"ahfeog" '08-Jun-2011 06:00:00' 1
"ahegao" '09-Jun-2010 21:00:00' 52
"agejho" '07-Jun-2015 03:00:00' 6
"ehagoa" '06-Jun-2015 06:00:00' 1
"eozjmv" '06-Jun-2015 18:00:00' 1
Could someone help me figure out how to do this?

Answers (2)

Paul Shoemaker
Paul Shoemaker on 27 Aug 2018
Hello Lee,
You might want to convert these two tables to timetables and then combine them using various functions, such as "synchronize."
Matlab has some examples here.
Paul Shoemaker
  1 Comment
Lee on 27 Aug 2018
Hello Paul Shoemaker,
Thank you for the response. Unfortunately, synchronize does not handle replicate dates and instead deletes one of the variables. The output I got was:
'08-Jun-2010 00:00:00' '<undefined>' 1
'09-Jun-2010 00:00:00' 'ahegao' 52
'08-Jun-2011 00:00:00' 'ahfeog' 1
'09-Jun-2011 00:00:00' '<undefined>' 1
'06-Jun-2015 00:00:00' 'ehagoa' 1
'07-Jun-2015 00:00:00' 'agejho' 6
Any other suggestions?

Sign in to comment.

BasO on 12 Nov 2018
Hi Lee,
Try to format the dates to 'dd-mmm-yyyy', this allows Matlab to syncronize as Paul said in his link.

Community Treasure Hunt

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

Start Hunting!