自然順序檔名排序 含Matlab原始碼

2021-10-19 08:46:08 字數 1815 閱讀 3635

字母數字形式的檔名或檔案路徑,具有可自定義的數字格式。

字串單元格陣列的字母數字排序(1xn個字元)。考慮到字串**現的任何數字子字串的值,對字串進行排序。比較例如:

>> a = ;

>> sort(a)

ans = 'a1.txt' 'a10.txt' 'a2.txt'

>> natsortfiles(a)

ans = 'a1.txt' 'a2.txt' 'a10.txt'

預設情況下,natsortfiles將所有連續的數字解釋為整數,可以使用正規表示式指定數字子串識別:有關詳細資訊,請參見natsort。

natsortfiles不會執行幼稚的自然順序排序,而是對檔名和副檔名分別進行排序,以確保字典排序,其中較短的檔名總是排在長檔名之前。同樣,在每個檔案分隔符處拆分檔案路徑,並分別對檔案層次結構的每個級別進行排序。

### dir和單元陣列的示例###

d = 'c:\test';

s = dir(fullfile(d,'*.txt'));

n = natsortfiles();

for k = 1:numel(n)

fullfile(d,n)

end###檔案依賴性###

自然順序排序由功能natsort(檔案交換34464)提供。natsortfiles支援所有natsort的可選輸入。

### examples ###

>> b = ;

>> sort(b) % note '-' sorts before '.':

ans =

'test-old.m'

'test.m'

'test_new.m'

>> natsortfiles(b) % shorter names before longer (dictionary sort):

ans =

'test.m'

'test-old.m'

'test_new.m'

>> c = ;

>> sort(c) % wrong numeric order:

ans =

'test.m'

'test1.m'

'test10-old.m'

'test10.m'

'test2.m'

>> natsortfiles(c) % shorter names before longer:

ans =

'test.m'

'test1.m'

'test2.m'

'test10.m'

'test10-old.m'

%% directory names:

>> d = ;

>> sort(d) % wrong numeric order, and '-' sorts before '\':

ans =

'a10\test.m'

'a1\test.m'

'a1archive.zip'

'a2-old\test.m'

'a2\test.m'

>> natsortfiles(d) % shorter names before longer (dictionary sort):

ans =

'a1archive.zip'

'a1\test.m'

'a2\test.m'

'a2-old\test.m'

'a10\test.m'

完整資料領取:

關於檔名排序演算法

輸入 a1,a2,a10,a001 我們知道,如果按照字串比較,結果應該是 a001,a1,a10,a2,但我們期望的結果應該是a001,a1,a2,a10.自己寫了乙個演算法,請參考,或者有更好的演算法,請賜教 return value description 0 arg1 less than a...

wordpress上傳含中文檔名出現亂碼

一 首先到ftp裡面找到wp admin includes file.php這個檔案。二 查詢wp handle upload在檔案裡面找到以下 function wp handle upload file,overrides false,time null new file uploads pat...

修改檔名並進行排序rename

檔案訪問方式 parentdir rename.py video 0.mp4 1.mp4 2.mp4 3.mp4建立rename.py import os import sys filedir os.path.dirname sys.ar 0 獲取指令碼所在目錄 os.chdir filedir 將...