How add multiple variables from one mat files into common mat file in loop ?

15 次查看(过去 30 天)
add all the variables from the 1st mat file to common mat file and then load the common mat file and then add all the variables from the second mat file to common mat file in the loop .
eg 1st mat file 6341 x1 variables
2nd mat file 354 x1 variables
common mat file should have 6695 x1

采纳的回答

Walter Roberson
Walter Roberson 2019-10-1
common_file = 'CommonMatFile.mat';
add_first_file = 'FirstFile.mat';
add_second_file = 'SecondFile.mat';
common_vars = load(common_file);
loaded_vars1 = load(add_first_file);
fn1 = fieldnames(loaded_vars1);
for K = 1 : length(fn1)
thisvar = fn1{K};
common_vars.(thisvar) = loaded_vars1.(thisvar);
end
save(common_file, '-struct', 'common_vars');
common_vars = load(common_file);
loaded_vars2 = load(add_second_file);
fn2 = fieldnames(loaded_vars2);
for K = 1 : length(fn2)
thisvar = fn2{K};
common_vars.(thisvar) = loaded_vars2.(thisvar);
end
save(common_file, '-struct', 'common_vars');

更多回答(1 个)

Stephen23
Stephen23 2019-10-1
编辑:Stephen23 2019-10-1
The solution is really very simple, you do not need to waste time with loops or dynamic fieldnames.
First lets create two example files A.mat and B.mat:
>> A = 'aaa';
>> B = 1:3;
>> save A.mat A
>> save B.mat B
We can now efficiently and simply merge the contents of the two .mat files together:
>> copyfile('A.mat','C.mat') % C will be the merged file
>> S = load('B.mat');
>> save('C.mat','-struct','S','-append')
And that is all you need to do.
Now C.mat contains all of the fields of A.mat and B.mat. Lets have a look:
>> new = load('C.mat')
new =
A: 'aaa'
B: [1 2 3]

类别

Help CenterFile Exchange 中查找有关 Text Data Preparation 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by