필터 지우기
필터 지우기

How to automatically concatenate several .mat files into one file?

조회 수: 5 (최근 30일)
Lianna Johnson
Lianna Johnson 2013년 6월 3일
Here is what I am trying to do:
I have these four .mat files... '20130602_SPLBRENT3_135638.mat' '20130602_SPLBRENT3_183333.mat' '20130602_SPLBRENT3_184002.mat' '20130602_SPLBRENT3_205239.mat'
I want to write perhaps a script or function that will concatenate those four files into one file with the name '20130602_SPLBRENT3_concat.mat' My goal is to be able to automate this process through Task Scheduler so that the files are concatenated once a day. As you can see, these are files from June 2.
Anyone know how I go about doing this? I am very new to Matlab so please be as detailed as possible. Thanks!
  댓글 수: 4
Iain
Iain 2013년 6월 3일
I think an important question is why do you want to concatenate those files?

댓글을 달려면 로그인하십시오.

답변 (1개)

Iain
Iain 2013년 6월 3일
Mat files aren't easy to concatenate UNLESS they contain different variables.
The code, in that case, would be:
load(filename1)
load(filename2)
load(filename3)
load(filename4)
save(filename)
If they have similar variables inside them, then concatenation is harder, but you can bodge it easily:
a{1} = load(filename1);
a{2} = load(filename2);
a{3} = load(filename3);
a{4} = load(filename4);
save(filename,a)
  댓글 수: 4
Walter Roberson
Walter Roberson 2013년 6월 4일
load() of a .mat file returns a structure whose fieldnames are the original variable names.
But I do need to think more about what should be concatenated together. The above will probably fail because -struct in save needs scalar structures.
Walter Roberson
Walter Roberson 2013년 6월 4일
For the case of .mat files with exactly one variable name:
t1 = load(filename1);
t2{1} = struct2cell(t);
t2{2} = struct2cell(load(filename2));
t2{3} = struct2cell(load(filename3));
t2{4} = struct2cell(load(filename4));
fn = fieldnames(t1);
t3.(fn{1}) = vertcat(t2{:});
save(filename, '-struct', 't3');

댓글을 달려면 로그인하십시오.

카테고리

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