Естественный порядок файлов в каталоге в массив ячеек с использованием Octave

У меня есть файлы, созданные другой программой/пользователем с такими именами, как "jh-1.txt, jh-2.txt,..., jh-100.txt,..., jh-1024.txt". Я извлекаю столбец из этих файлов, манипулирую данными и вывожу в новую матрицу. Единственная проблема заключается в том, что Octave использует порядок ASCII, а не естественный порядок при чтении файлов. Таким образом, выходная матрица не упорядочена естественным образом. Мой вопрос: может ли Octave сортировать имена файлов в естественном порядке? Я получаю имена файлов стандартным методом:

fileDirectory = '/path/to/directory';
filePattern = fullfile(fileDirectory, '*.txt'); % Selects only the txt files.
dataFiles = dir(filePattern); % Gets the info from the txt files in the directory.
baseFileName = {dataFiles.name}'; % Gets all the txt file names.

Я не могу переименовать файлы, потому что это скрипт для другого пользователя. Они работают на машине с Windows, и у них уже установлена ​​Octave с Cygwin, и я не хочу заставлять их использовать командную строку больше, чем нужно, потому что они с ней незнакомы. В качестве альтернативы, было бы неплохо иметь вывод с именами файлов в столбце, но я тоже не понял этого (сам немного нуб с Octave). Таким образом, пользователь может использовать Excel (с которым он знаком) для сортировки столбцов.


person Andy    schedule 18.11.2011    source источник


Ответы (1)


Я не думаю, что в Octave есть встроенная естественная сортировка. Однако на файловом обмене Mathwork существует естественная сортировка. Я не использовал его, но комментарии подразумевают, что он работает и в Octave.

person mtrw    schedule 18.11.2011
comment
Это прекрасно работает! Еще раз спасибо, что указали мне на это. Я посмотрю на обмен файлами Matlab, прежде чем публиковать здесь вопросы в будущем. - person Andy; 22.11.2011