How to append two datas of two different .mat files into one .matfile?

1 view (last 30 days)
One .matfiel contains one feature having 1x20 coefficient and another .matfile contain only one value. Then how to append this two into one .mat file?

Answers (2)

Stephen23
Stephen23 on 29 May 2019
Edited: Stephen23 on 29 May 2019
It is very easy to efficiently create the union of two .mat files:
>> copyfile('A.mat','C.mat') % C will be the merged file
>> S = load('B.mat');
>> save('C.mat','-struct','S','-append')
  8 Comments
Suchithra K S
Suchithra K S on 29 May 2019
Edited: Stephen23 on 29 May 2019
"Repeat the second two lines as often as needed (hint: use a loop)."
is the below given code is ok or not
copyfile('c7i.mat','r77i.mat') % r77i will be the merged file
S = load('w7i.mat');
save('r77i.mat','-struct','S','-append')
S = load('t7i.mat');
save('r77i.mat','-struct','S','-append')
Stephen23
Stephen23 on 29 May 2019
Edited: Stephen23 on 29 May 2019
"is the below given code is ok or not"
If you are aiming to create the set union of the variables saved in three .mat files, then yes.
Note that you could easily test that yourself, by running this code on a few test .mat files.

Sign in to comment.


Piyush kant
Piyush kant on 29 May 2019
What i got from your question you have a variable suppose x=randi(1,20); which is 1x20 in size in "file1.mat". Another variable suppose y=31; in separate mat file"file2.mat" and you ned both to be in a single mat file which could be "newfile.mat".
For this you just need to load both the files for the variables to appear in workspace and use save command to save those into new variable.
x=load('file1.mat');
y=load('file2.mat');
save('newfile','x','y')
  1 Comment
Stephen23
Stephen23 on 29 May 2019
Note that this will save the scalar structures x and y, which might not be the desired effect.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!