-1
我必須從目錄中的大量文件名中讀出數字和可能的一些字母。文件名稱的格式爲「aXXXX_bXX_XX_S.ext」,其中「X」可以是任何數字,「s」可以是任何字母或字符串。我如何提取這些數字和字符串作爲單獨的單元格數組?如何從matlab中提取文件名中的數字?
謝謝!
我必須從目錄中的大量文件名中讀出數字和可能的一些字母。文件名稱的格式爲「aXXXX_bXX_XX_S.ext」,其中「X」可以是任何數字,「s」可以是任何字母或字符串。我如何提取這些數字和字符串作爲單獨的單元格數組?如何從matlab中提取文件名中的數字?
謝謝!
首先,您可以讀取目錄中的所有文件。假設你的文件夾的位置存儲在字符串path
中,使用方法:
a=dir(mypath);
現在你有一個結構a
。文件名存儲在a.name
中。現在你可以使用它了。這是一個非常粗略的代碼。你循環所有文件,檢查第一個字母是否爲a
(可能有一些隱藏文件,你不需要它們)。然後,從合格的文件中提取所需的數據。
n=0;
for i=1:numel(a)
if a(i).name(1)=='a'
n=n+1;
numbers{n}=strcat(a(i).name(2:5),a(i).name(8:9),a(i).name(11:12));
letters{n}=a(i).name(13:find(a(i).name=='.')-1);
end
end
歡迎來到StackOverflow!你應該告訴我們你已經嘗試了什麼。現在,請查看['strsplit'](http://www.mathworks.com/help/matlab/ref/strsplit.html)或['strtok'](http://www.mathworks.com/幫助/ MATLAB/REF/strtok.html)。祝你好運! –
你想要一個[正則表達式](http://www.mathworks.com/help/matlab/ref/regexp.html?refresh=true)。我建議查看文檔並在[regex101](https://regex101.com/)上播放以找出正確的模式。 – excaza