如何在Octave的模式中使用变量?

时间:2019-05-26 15:29:57

标签: octave

如何在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

有人可以提出解决方案吗?

1 个答案:

答案 0 :(得分:0)

找到解决方案:

'sprintf'命令可用于将模式传递给字符串。我们可以使用它向glob命令输入模式:

for j = 1:8
filenames = glob(sprintf("A-B123-%d-*",j))

此循环通过A-B123-1- *到A-B123-8-*

可以在此循环中创建另一个循环,以使*部分通过c1,c2 ...