利用matlab訪問資料夾中的檔案以及更改檔名

2021-10-12 03:17:09 字數 1307 閱讀 4092

imgdir=

dir(

'*.*');

for i=3:

length

(imgdir)

namesplit=

strsplit

(imgdir

(i).name,

'_');if

length

(namesplit)

>1if

strcmp

( namesplit(1

:2),

'ir'

)eval([

'!rename'

32imgdir

(i).name 32

[num2str

(i-2

)'_ir.bmp']]

);end

endend

訪問資料夾中的子檔案,*.*表示所有型別所有名稱的檔名,

imgdir=

dir(

'*.*'

);

使用dir函式後會得到struct型別的變數,使用.name就可以獲取檔名了,需要注意的是,前兩個是檔案目錄,在遍歷的時候需要跳過

使用rename關鍵字對檔案進行重新命名,32表示空格的意思,這裡感覺像個命令函式,通過win10命令對檔案進行操作

eval([

'!rename'

32imgdir

(i).name 32

[num2str

(i-2

)'_ir.bmp']]

);

詳細解釋一下:

eval:執行命令

!rename:重新命名

32:空格

imgdir(i).name:獲取第i個檔案的檔名

num2str(i-2):將(i-2)這個數字轉化為字串型別

[num2str(i-2) '_ir.bmp']:這樣寫就可以得到類似「6_ir.bmp」的字串

['!rename' 32 imgdir(i).name 32 [num2str(i-2) '_ir.bmp']]:這樣寫就類似於讓系統執行

「!rename pic.bmp 6_ir.bmp」 這個命令

利用遞迴刪除資料夾(資料夾中套資料夾)

刪除目錄 bool deldir const ansistring p if p.isempty p.length 4 return false 引數必須大於3,即不能為磁碟根目錄或空白 int len p.length char path p.c str ansistring dir ansist...

matlab遍歷資料夾

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

matlab檔案 資料夾操作

定義路徑 f fullfile c download pwd 返回當前路徑cd c toolbox matlab demos 切換當前工作目錄到demos cd 切換當前工作目錄到matlabboolean isfolder f boolean isempty f files dir f files...