How to merge a set of struct files?

4 次查看(过去 30 天)
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 1x3 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.
  2 个评论
Stephen23
Stephen23 2019-1-24
Are the field names exactly the same in all of the .mat files?
Do all of the structure have exactly the same size?
ELCIO S
ELCIO S 2019-1-24
编辑:ELCIO S 2019-1-24
@Stephen Cobeldick Yes, same field names and size.

请先登录,再进行评论。

采纳的回答

TADA
TADA 2019-1-24
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));

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by