MATLAB: How to merge a set of struct files

matMATLABmergestructstructures

Hi everyone. I have a lot of structs saved in .mat files. I need merge all of then in just one. How can I do it?
Let suppose, I have 4 .mat file, like in attached ones. Each of then are a 1×3 struct with 4 fields, like in figure below.
fig1.png
I need merge then to obtain a new one with 1 x 12 struct with 4 fields.
Can anyone help me?
Thank you.

Best Answer

files = dir('data_*.mat'); % based on the names of the files you supplied
c = cell(1,numel(files));
for i = 1:numel(files)
filename = fullfile(files(i).folder, files(i).name);
c{i} = load(filename);
end
% get an array of the data structs
data = cell2mat(c);
% or you can unravel the data struct into an array of the data itself:
data1 = cell2mat(cellfun(@(a) a.data, c, 'UniformOutput', false));