How can I merge two structs?

4 views (last 30 days)
Sander Janssen
Sander Janssen on 11 Oct 2022
Commented: Sander Janssen on 11 Oct 2022
My question might become a bit complicated, so please let me know if I have not explained something well.
I have got a structure that has two relevant fields, one field is a character which shows the date and the other field is a structure with data, let's call them A.date (char) and A.data (struct).
Some of the dates are duplicate (on purpose) I would like to add the values from the structure of those duplicates to the structure with the same date (so effectively merging the structures).
Sketch of what I'd like to achieve:
for i=1:length(A)
if A(i).date == A(i+1).date % Will work untill final value is reached
A(i).data + A(i+1).data % Won't work, but I would want to merge A(i).data + A(i+1).data
end
end
Any help is greatly appreciated, thanks in advance!
  2 Comments
Sander Janssen
Sander Janssen on 11 Oct 2022
I have made an example structure that looks the same (just different names/values).

Sign in to comment.

Answers (1)

Benjamin Thompson
Benjamin Thompson on 11 Oct 2022
Due to the need to merge it might be easiest to use struct2table, table2timetable, make sure it is merged well as a time table, then table2struct to change it back to the struct data type.
  7 Comments
Sander Janssen
Sander Janssen on 11 Oct 2022
The problem is that I do not know which row will be a duplicate, so I'd first need to identify that. I might be able to add them beforehand but I'll have to check that...

Sign in to comment.

Categories

Find more on Structures in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by