MATLAB遍歷子資料夾及其下檔案

2022-02-14 11:42:53 字數 1495 閱讀 2356

可以使用函式dir,d = dir(『directory_name』)返回乙個結構陣列,包含了資料夾directory_name下的子資料夾和子檔案的一些資訊,第1個成員是檔名,第4個成員表示是否為資料夾。

要注意的是第1個陣列元素和第2個陣列元素分別是』.』和』..』,表示當前目錄和上層目錄。

clc;clear;

maindir = '

d:\qcc\hdmap_statistics_opendrive\python_code\33782112\';

subdir =dir( maindir );

for i = 1

: length( subdir )

if( isequal( subdir( i ).name, '

.' )||...

isequal( subdir( i ).name, '..

')||...

subdir( i ).isdir) %如果是目錄則跳過

continue

; end

subdirpath = fullfile( maindir, subdir( i ).name, '

*.txt');

dat = dir( subdirpath ) ; %子資料夾下找字尾為dat的檔案

for j = 1

: length( dat )

datpath =fullfile( maindir, subdir( i ).name, dat( j ).name);

fid =fopen( datpath );

% 此處新增你的對檔案讀寫操作 %

fclose(fid);

endend

1. 遍歷當前資料夾下所有

做影象處理實驗,經常需要遍歷當前檔案下所有。matlab當然很早就考慮了這個問題,庫函式dir就是完成這個工作的。函式返回的是乙個存放所有目錄下檔案資訊的結構體,通過遍歷結構體就可以達到訪問所有檔案的目的了。具體實現見下面程式:

imgpath = 'e:/imagedata/'; % 影象庫路徑

imgdir = dir([imgpath '*.jpg']); % 遍歷所有jpg格式檔案

for i = 1:length(imgdir) % 遍歷結構體就可以一一處理了

img = imread([imgpath imgdir(i).name]); %讀取每張

end上面imgdir返回的是乙個結構體,包含每個name(名稱),date(日期),bytes(位元組數),isdir(是否為資料夾/目錄),datenum(修改日期,連續日期號碼)。一般我們僅需使用名稱就可以完成遍歷的工作。

2. 遍歷當前資料夾下所有子資料夾中所有

如果有做co-segmentation、多影象分類或者co-saliency等方向的人,經常會遇到需要訪問不同分類資料夾下的。這時候我們就需要先遍歷所有子資料夾,然後依次再遍歷每個子資料夾下的。程式如下:

MATLAB遍歷子資料夾及其下檔案

ref maindir subdir1 datafile1.dat datafile2.dat subdir2 datafiel3.dat datafiel4.dat subdir3 datafile5.dat datafile6.dat 主資料夾maindir下含有三個子資料夾,子資料夾分別包含兩...

C 遍歷資料夾及其子檔案(夾)

c 遍歷資料夾及其子檔案 夾 如下 int finder lpctstr pstr 一般檔案及資料夾 printf d s n i finder.getfilename bool bisdir finder.isdirectory if bisdir else end while finder.cl...

matlab遍歷資料夾

這又是個matlab程式,上次幫同學寫了個提取序列的函式,這次要能自動將資料夾中所有檔案自動的識別並建立對應的資料夾,資料夾名要和檔案中某個字段相同。tmp1 mkdir dir final system tmp1 資料夾建立完成 我試了下,用下面的函式系統就自動關機了,fun shutdown s...