如何在Octave的当前目录中循环使用具有特定文件名模式的文件?
我发现glob是获取当前目录中文件列表的最佳选择,并且您可以使用“模式”来获取特定模式的文件列表。现在,我有了一个文件列表,该文件列表的名称由两个单个整数组成,例如
A-B123-1-c1, A-B123-1-c2, A-B123-2-c1, A-B123-2-c2.... and so on.
现在我想在连字符之间循环显示数字。我可以在模式中使用循环变量,因为数字是连续的,但是我无法弄清楚如何在glob模式中使用变量值。
我已使用以下代码导入具有特定模式的文件名:
filenames = glob("A-B123-*")
但是,此代码一次导入所有带有模式A-B123-的文件名。我正在尝试使用以下循环:
for j = 1:8
filenames = glob("A-B123-%j-*")
但是它输出一个空单元格:
filenames = {}(0x0)
当j的值为1时,我需要以下输出:
filenames =
[1,1] = A-B123-1-c1
[2,1] = A-B123-1-c2
有人可以提出解决方案吗?
答案 0 :(得分:0)
找到解决方案:
'sprintf'命令可用于将模式传递给字符串。我们可以使用它向glob命令输入模式:
for j = 1:8
filenames = glob(sprintf("A-B123-%d-*",j))
此循环通过A-B123-1- *到A-B123-8-*
可以在此循环中创建另一个循环,以使*部分通过c1,c2 ...