MATLAB,Octave:使用包含空格的文件夹名称

时间:2018-03-29 14:58:31

标签: string matlab octave directory

在MATLAB中,实际上是Octave,我想找到当前文件夹中所有子文件夹的列表,所以我使用它:

subFolder = dir;

这将显示当前文件夹中所有子文件夹的列表。这将返回一个结构,其中一个元素是名称。假设我有两个名为subfolder 1Asubfolder 1B的子文件夹。

现在我想转到这些文件夹。然后我这样做:

cd subFolder(1).name

但是我收到了这个错误:

error: subFolder(1).name: No such file or directory

如果我这样做:

cd "subfolder 1A"
一切正常。解决方案是什么?

1 个答案:

答案 0 :(得分:5)

在这种情况下,文件夹名称中的空格是红色鲱鱼。这不是问题的根源。实际问题是您需要使用cd调用function syntax instead of command syntax函数(即使用括号;相关问题here):

cd(subFolder(1).name);

当您使用命令语法时,subFolder(1).name本身被视为cd的字符串参数(即它正在寻找名为'subFolder(1).name'的文件夹)。使用函数语法,结构数组字段中包含字符串用作参数。

为了使您的代码更加健壮,您还可以使用dir返回的'folder'字段:

cd(fullfile(subFolder(1).folder, subFolder(1).name));

无论您当前所在的目录是什么,都将转到所需的文件夹,因为它指定了绝对路径而不是部分路径(相对于当前目录)。