Is it possible to combine two structures saved in two different .mat files?

I have two structures, both named 'data' with 17 same fields. They are basically measured data of two different dates, and I would like two combine these two. In order words, what I want is:
First .mat file: data = 1 x 85 struct array with 17 fields.
Second .mat file: data = 1 x 15 struct array with 17 fields.
---------------------------------------------------------------
Combined .mat file: data = 1 x 100 struct array with 17 fields.
If possible, I would like to avoid writing a script and rather use GUI. I also think it is possible two combine the two structures by loading both files (renaming one of them). I also would like to avoid this method.
Thanks.

2 Comments

Are the fields in exactly the same order between the two files?
Yes, they are exactly the same.

Sign in to comment.

 Accepted Answer

Look at this example
q=num2cell(1:2)
p=num2cell(1:3)
a=struct('a',q,'b',q)
b=struct('a',p,'b',p)
c=[a b]

3 Comments

This would definitely work. However, this would make me to load all structures at the same time, and since they cannot be loaded under same name, I have to rename all of the rest except the first one. Is there any way to avoid renaming?
datacell1 = load('First file.mat');
datacell2 = load('Second file.mat');
combined.data = [datacell1.data, datacell2.data];
save('Combined file.mat', '-struct', 'combined')
Thanks, Walter. Works like charm :)

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!