一、獲取一個文件夾下所有文件名:
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
