在 Octave 中,我如何调用带选项的 ls?

In Octave, how can I call ls with options?

我正在尝试获取要在我的 Octave 程序中循环访问的文件名列表。我目前打电话

x = ls

而且效果很好。 但是,我想要一个只有文本文件的列表。我可以打电话

ls *.txt

但是我不能打电话

x = ls *.txt

有什么办法吗?我找到的解决方法是

x = eval("ls *.txt")

但我希望避免这种情况。

你应该阅读手册:http://www.gnu.org/software/octave/doc/interpreter/Calling-Functions.html#Calling-Functions

x = ls ("*.txt")

如果调用不带 () 的函数,所有参数都将被解释为字符串,但这仅在您不想存储结果时有效。所以

foo bar baz

等同于

foo ("bar", "baz")

除了 这解释了为什么你调用 ls 错误之外,你一开始调用 ls 也是错误的。此函数 return 是一个包含文件列表的字符数组,除了在 Octave 提示符下显示外,它几乎无用。

相反,考虑使用 glob:

files = glob ("*.txt")

这将 return 一个文件名元胞数组。