Number of .mat files into single .mat file

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Kishore
Kishore il 9 Ago 2022
Modificato: Kishore il 9 Ago 2022
Sorry, All 10 .mat files variables having same names in the files. Now, I want to overlap all 10 files into a single .mat file.
Matt J
Matt J il 9 Ago 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.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 9 Ago 2022
Modificato: Matt J il 9 Ago 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 Commenti
Matt J
Matt J il 16 Ago 2022
JoinedData.mat matrix value should be like this, 44444 x 67
It won't be. loading JoinedData.mat will give you the structure S, which you already have in the workspace.
Walter Roberson
Walter Roberson il 16 Ago 2022
Please show the output of
whos -file Data1.mat
whos -file Data2.mat

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 16 Ago 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

Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by