snake plissken
snake plissken

Reputation: 2669

Read with order files in subfolders in matlab

I've got a folder which contains subfolders with text files. I want to read those file with the same order as they are in the subfolders. I've got a problem with that. I use the following matlab code:

  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

In one subfolder I've got the above text file names:

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

But it seems that it reads first the AnimalPrint_zebra_test_12.descr and after the AnimalPrint_zebra_test_1.descr and the rest. Any idea why this happens?

Upvotes: 0

Views: 264

Answers (1)

marsei
marsei

Reputation: 7751

dir sorts the files according to their names, for instance

test_1
test_12 % 1 followed by 2
test_2
test_3

You may want to build your own order with ['test_' num2str(variable) '.descr'] that concatenates test_ with an incrementing variable.

Upvotes: 2

Related Questions