想批量合并同一文件夹下的mat文件,文件名都是不同的且没有顺序规律,请问要如何编写代码?
图片:
主要代码如下:
// %% Created by Davy lu
clc
clear all
% global subdir
filepath=‘C:\Users\xxx\Desktop\test’;% 输入文件总路径
subdir=genpath(filepath);
addpath(subdir);
filedir=regexp(subdir,’;’, ‘split’);
for i=1:(length(filedir)-1)
data_fn=dir([filedir{i},’*.mat’]);
data_fncell=struct2cell(data_fn);
% data_fn.name
% data_fn.folder
if length(data_fn)>1
for ii=1:length(data_fn)
matsfile{i,ii}=strcat(data_fn(ii,1).folder,’’,data_fn(ii,1).name);
end
else
matsfile{i,1}=strcat(data_fn.folder,’’,data_fn.name);
end
end
matsfile(cellfun(@isempty,matsfile))=[];
matsfile=unique(matsfile);
if matsfile{1,1}’’
matsfile{1,1}=[];
end
if matsfile{1,end}’’
matsfile{1,end}=[];
end
matsfile(cellfun(@isempty,matsfile))=[];
matsfile=matsfile’;%最终得到的带路径的变量
%% 逐一加载
for k=1:1:length(matsfile);
filename=matsfile{k};
load(filename);
disp(filename);
XXXX可以插入绘图等
end