使用matlab中的子文件夹中的订单文件进行读取

时间:2014-02-17 11:45:08

标签: matlab text

我有一个文件夹,其中包含带有文本文件的子文件夹。我想以与子文件夹中相同的顺序读取这些文件。我有一个问题。我使用以下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之后的其他内容。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

dir根据文件的名称对文件进行排序,例如

test_1
test_12 % 1 followed by 2
test_2
test_3

您可能希望使用['test_' num2str(variable) '.descr']建立自己的订单,将test_与递增变量连接。