Re: [討論] dir 自然排序

看板MATLAB作者 (天)時間9年前 (2016/04/12 01:17), 9年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《dwadefans (wade)》之銘言: : 我的檔案名稱是 A-(1).jpg, A-(2).jpg, A-(3).jpg...~A-(150).jpg : 我使用dir函數取得我資料夾底下所有的jpg名稱 : list=dir('*.jpg') : 但是我取得出來的順序會是: : A-(1).jpg , A-(100).jpg, A-(101).jpg .... A-(9).jpg : 看過網路上發現要按照我那樣子去排序稱做Natural Order : 於是找到了sort_nat這個open source函數 : 但是套用時出現錯誤 : http://i.imgur.com/XmqxaGB.png
: 似乎是不能直接input dir這類型的變數 : 得經過轉換 但是才剛接觸matlab還有許多部份不了解 : 想請問有沒有人知道該如果正確的令檔案進行排序呢? : 謝謝! 你可以用regular expression做排序試試看 list = dir('*.jpg'); % 產生測試list % list = sort(arrayfun(@(x) ['A-(', num2str(x), ').jpg'], .. % 1:150, 'uni', false)); % list(1:4) % ans = % 'A-(1).jpg' 'A-(10).jpg' 'A-(100).jpg' 'A-(101).jpg' [~, idx] = sort(cellfun(@str2double, ... regexprep(list, 'A-\((\d*)\).jpg', '$1'))); list_output = list(idx); list_output(1:4) % ans = % 'A-(1).jpg' 'A-(2).jpg' 'A-(3).jpg' 'A-(4).jpg' -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.236 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1460395038.A.FAE.html ※ 編輯: celestialgod (140.109.73.236), 04/12/2016 01:17:32

04/12 07:30, , 1F
這好像就是sort_nap的做法
04/12 07:30, 1F
文章代碼(AID): #1N2zmU-k (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1N2zmU-k (MATLAB)