一、获取一个文件夹下所有文件名:
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
请发表评论