2011-09-02 19 views

Odpowiedz

18

Użyj dir(), aby uzyskać listę nazw plików. Możesz określić symbole wieloznaczne.

4

Można użyć

fileName=ls('*xyz').

zmienna fileName będzie miał listę wszystkich nazw plików, które można wykorzystać w pętli for

+2

Bądź ostrożny, [LS] (http://www.mathworks.de/help/techdoc/ref/ls.html) zwraca inną składnię w systemie Windows lub Unix! –

+0

Spowoduje to wstawienie spacji do nazw plików i sprawi, że będą one miały taką samą długość, co nie jest dobre. – LWZ

+1

@LWZ: niepotrzebne miejsce można usunąć za pomocą standardowej funkcji strtrim. –

25

Jak inni już wspomniano, należy użyć funkcji DIR do listy plików w katalogu.

Jeśli nadal szuka, tutaj jest przykładem, aby pokazać, jak korzystać z funkcji:

dirName = 'C:\path\to\folder';    %# folder path 
files = dir(fullfile(dirName,'*.xyz')); %# list all *.xyz files 
files = {files.name}';      %'# file names 

data = cell(numel(files),1);    %# store file contents 
for i=1:numel(files) 
    fname = fullfile(dirName,files{i});  %# full path to file 
    data{i} = myLoadFunction(fname);  %# load file 
end 

Oczywiście, trzeba dostarczyć funkcję faktycznie czyta i analizuje pliki XYZ.

0

Oto moja odpowiedź:

dirName = 'E:\My Matlab\5'; 
[sub,fls] = subdir(dirName); 
D = []; 
j = 1; 
for i=1:length(sub), 
    files{i} = dir(fullfile(sub{i},'*.xyz')); 
    if length(files{i})==1 
     D(j) = i; 
     files_s{j} = sub{i}; 
     j=j+1; 
    end 
end 

varaible files_s zwraca ścieżki pragnienie, które zawierają te konkretne typy danych!

Funkcja podkat można znaleźć na stronie: http://www.mathworks.com/matlabcentral/fileexchange/1492-subdir--new-

Powiązane problemy