Matlab获取文件夹下所有文件名并将数据按矩阵赋值给变量

一、获取一个文件夹下所有文件名:

fileFolder=fullfile('D:\MATLAB\bin\trc');

dirOutput=dir(fullfile(fileFolder,'*.trc'));

fileNames={dirOutput.name};

解释:

1、第一行

fileFolder=fullfile('D:\MATLAB\bin\trc');

引号内是需要遍历的路径,填绝对路径,然后保存在fileFolder

2、第二行

dirOutput=dir(fullfile(fileFolder,'*.trc'));

引号内是文件的后缀,写'.trc'则读取后缀为'.trc'的文件

3、第三行

fileNames={dirOutput.name};

将所有文件名,以矩阵形式按行排列,保存到fileNames中

 

二、将数据按矩阵赋值给变量

n = 1;
for i=fileNames
i_trace = strcat('D:\MATLAB\bin\trc\',i);
eval(['T',num2str(n),'=','load(i_trace{1,1})',';']);
n = n+1;
end

1、strcat('D:\MATLAB\bin\trc\',i);获取详细路径,如得到:

i_trace = D:\MATLAB\bin\trc\baiyulin_g9.trc

 

2、eval(['T',num2str(n),'=','load(i_trace{1,1})',';']);

①eval()是将内容赋值给Tn

②load(i_trace{1,1})是读取文件

③i_trace{1,1}中的{1,1}是读取cell格式的文件,方便load加载,不加{1,1}会报错!!!

 

3、最终得到

变量名为T1至TN的n个储存着该目录下所有对应文件内容的变量

 

4、亦可以将变量名命名为你想要的名字

方法使用matlab的正则表达式:

name = regexprep(i,'(_)(g)(\d)+(.)(trc)$','');

这个式子可将字符串为‘baiyulin_g9.trc’的转换为‘baiyulin’。

 

三、最终形式

fileFolder=fullfile('D:\MATLAB\bin\trc');
 
dirOutput=dir(fullfile(fileFolder,'*.trc'));
 
fileNames={dirOutput.name};

n = 1;

for i=fileNames

    i_trace = strcat('D:\MATLAB\bin\trc\',i);

    eval(['T',num2str(n),'=','load(i_trace{1,1})',';']);

    n = n+1;

end

  

posted @ 2018-11-23 17:29  dellyoung  阅读(5482)  评论(0编辑  收藏  举报