Merging several mat files in a row order
Ältere Kommentare anzeigen
Hi everyone,
I have 65 mat files with different names and each mat file is 1x1 struct, contains information as longitude, latitude, year(335x1), month(335x1) etc.
So how can i combine them as a single mat file which should have first row as a information of first mat file, second row as a information of second mat file, until 65 rows of each mat file?
I would be very pleased if you have any idea about how to do it?
Antworten (1)
Jan
am 11 Jul. 2021
You did not explain, how a list of the files names can be obtained. I guess, that they can be found in the same folder:
Folder = 'C:\your\folder';
Files = dir(fullfile(Folder, '*.mat'));
DataC = cell(1, numel(Files));
for iFile = 1:numel(Files)
aFile = fullfile(Folder, Files(iFile).name);
DataC{iFile} = load(aFile);
end
Data = cat(2, DataC{:});
4 Kommentare
Ahmet Hakan UYANIK
am 11 Jul. 2021
Bearbeitet: Ahmet Hakan UYANIK
am 11 Jul. 2021
Jan
am 13 Jul. 2021
Of course I cannot guess, what the contents of your MAT files is. Now it is clear, that the files contains structs with a field name "astoria" and "betio" with the subfield "longitude". But where does "latitude", "datetime" and "observation" come from? It is no save strategy, if I guess this.
What is the wanted output? You want "a single MAT file", but your example looks like a table. Should it be a text file?
Ahmet Hakan UYANIK
am 14 Jul. 2021
Jan
am 15 Jul. 2021
What are "subfields in a row"? Fields do not have an orientation. What is "calling with the row order"?
I assume, you want to create either a struct array, or to write a text file containing rows.
Kategorien
Mehr zu Structures finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!