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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM