Number of .mat files into single .mat file

19 views (last 30 days)
Hi,
I've 10 .mat files. I want to overlap all 10 .mat files into one (single) mat file.
For ex: my filename is data1, data2,......,data10.mat.
Can someone help me to solve this problem???
Thanks in advance
  3 Comments
Matt J
Matt J on 9 Aug 2022
@Kishore If they contain the same variable names, what does it mean to "overlap" all 10 files? A single .mat file cannot contain 2 variables with the same name.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 9 Aug 2022
Edited: Matt J on 9 Aug 2022
It depends what they contain and how you want the variables joined within the final .mat file. One way:
filenames="data"+(1:10)+".mat";
for i=1:numel(filenames)
S(i)=load(filenames(i));
end
save("JoinedData.mat",'S')
  9 Comments
Walter Roberson
Walter Roberson on 16 Aug 2022
Please show the output of
whos -file Data1.mat
whos -file Data2.mat

Sign in to comment.

More Answers (1)

Stephen23
Stephen23 on 16 Aug 2022
Fake data:
X = 1:3;
save data1.mat X
X = 4:6;
save data2.mat X
X = 7:9;
save data3.mat X
clear
Joining file data:
N = 3;
C = cell(1,N);
for k = 1:N
F = sprintf('data%d.mat',k);
C(k) = struct2cell(load(F));
end
Xnew = vertcat(C{:});
save('joineddata.mat','Xnew')
Checking:
S = load('joineddata.mat');
S.Xnew
ans = 3×3
1 2 3 4 5 6 7 8 9

Community Treasure Hunt

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

Start Hunting!