2015-03-29 1 views
0

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

x = ls 

и это работает нормально. Однако мне нужен список только текстовых файлов. Я могу назвать

ls *.txt 

Но я не могу назвать

x = ls *.txt 

Есть ли способ сделать это? Обходной путь, который я нашел, -

x = eval("ls *.txt") 

, но я надеюсь избежать этого.

ответ

2

На вершине Andy's answer, который объясняет, почему вы звоните ls неправильно, вы также неправильно называя ls, чтобы начать с. Эта функция возвращает массив символов со списком файлов, который в основном бесполезен для чего-либо, кроме отображения в приглашении Octave.

Вместо этого следует использовать glob:

files = glob ("*.txt") 

, который возвращает массив ячеек имен файлов.

2

Вы должны прочитать инструкцию: http://www.gnu.org/software/octave/doc/interpreter/Calling-Functions.html#Calling-Functions

x = ls ("*.txt") 

При вызове функции без(), все аргументы интерпретируются как строки, но это работает только, если вы не хотите, чтобы сохранить результат. Так

foo bar baz 

эквивалентно

foo ("bar", "baz")