2016-04-26 19 views
-1

Ich muss Zahlen und möglicherweise einige Buchstaben aus einem großen Satz von Dateinamen in einem Verzeichnis auslesen. Die Dateinamen haben das Format "aXXXX_bXX_XX_S.ext", wobei "X" eine beliebige Zahl sein kann und "s" ein beliebiger Buchstabe oder eine Zeichenfolge sein kann. Wie extrahiere ich diese Zahlen und die Zeichenfolge als separates Zellenfeld?Wie man Zahlen in einem Dateinamen aus Matlab extrahiert?

Danke!

+0

Willkommen bei StackOverflow! Sie sollten uns zeigen, was Sie bereits versucht haben. Schauen Sie sich zunächst [strsplit] (http://www.mathworks.com/help/matlab/ref/strsplit.html) oder [strtok] (http://www.mathworks.com/) an. Hilfe/Matlab/ref/strtok.html). Viel Glück! –

+0

Sie möchten einen [regulären Ausdruck] (http://www.mathworks.com/help/matlab/ref/regexp.html?refresh=true). Ich schlage vor, die Dokumentation auszuprobieren und auf [regex101] (https://regex101.com/) herumzuspielen, um das richtige Muster herauszufinden. – excaza

Antwort

0

Zuerst können Sie alle Dateien in Ihrem Verzeichnis lesen. Unter der Annahme, die Position des Ordners in der Zeichenfolge gespeichert path verwenden:

a=dir(mypath); 

Jetzt haben Sie eine Struktur a. Dateinamen werden in a.name gespeichert. Jetzt können Sie damit arbeiten. Hier ist ein sehr grober Code. Sie durchlaufen alle Dateien, überprüfen Sie, ob der erste Buchstabe a ist (es könnte versteckte Dateien geben, Sie brauchen sie nicht). Dann extrahieren Sie die benötigten Daten aus den berechtigten Dateien.

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 
Verwandte Themen