2014-02-17 52 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.descrAnimalPrint_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之前。 –

相關問題