2014-02-17 2 views
1

У меня есть папка, содержащая вложенные папки с текстовыми файлами. Я хочу прочитать эти файлы с тем же порядком, что и в подпапках. У меня проблема с этим. Я использую следующий код: MatLabПрочтите файлы заказов в подпапках в matlab

outNames = {}; 
    k=1; 
    feature = zeros(619,85); 
    fileN = cell(619,1); 

for i=1:length(nameFolds) 

    dirList = dir(strcat(path, num2str(cell2mat(nameFolds(i,1))))); 
    names = {dirList.name}; 
    outNames = {}; 

    for j=1:numel(names) 
     name = names{j}; 
     if ~isequal(name,'.') && ~isequal(name,'..') 
      [~,name] = fileparts(names{j}); 
      outNames{end+1} = name; 
      fileName = strcat(path, num2str(cell2mat(nameFolds(i,1))), '\', name, '.descr'); 
      feature(k,:) = textread(fileName); 
     fileN{k} = [fileName num2str(k)]; 
      k= k+1; 
     end 
    end 
end 

В один вложенном я получил вышеуказанные имена текстовых файлов:

AnimalPrint_tiger_test_01.descr 
AnimalPrint_tiger_test_02.descr 
AnimalPrint_tiger_test_03.descr 
AnimalPrint_tiger_test_04.descr 
AnimalPrint_tiger_test_05.descr 
AnimalPrint_tiger_test_06.descr 
AnimalPrint_tiger_test_07.descr 
AnimalPrint_tiger_test_08.descr 
AnimalPrint_tiger_test_09.descr 
AnimalPrint_tiger_test_10.descr 
AnimalPrint_tiger_test_11.descr 
AnimalPrint_tiger_test_12.descr 
AnimalPrint_tiger_test_13.descr 
AnimalPrint_tiger_test_14.descr 
AnimalPrint_tiger_test_15.descr 
AnimalPrint_zebra_test_1.descr 
AnimalPrint_zebra_test_2.descr 
AnimalPrint_zebra_test_3.descr 
AnimalPrint_zebra_test_4.descr 
AnimalPrint_zebra_test_5.descr 
AnimalPrint_zebra_test_12.descr 

Но, кажется, что он читает сначала AnimalPrint_zebra_test_12.descr и после AnimalPrint_zebra_test_1.descr и отдыха , Любая идея, почему это происходит?

ответ

2

dir сортирует файлы в соответствии с их именами, например

test_1 
test_12 % 1 followed by 2 
test_2 
test_3 

Вы можете создать свой собственный заказ с ['test_' num2str(variable) '.descr']test_, объединяющее с увеличивающимся переменной.

+0

Если быть точным: «Результаты отображаются в порядке, возвращаемом операционной системой». Я предполагаю, что это означает, что '12' предшествует' 1.' –

Смежные вопросы