Octave regexp在八度音程中无法正常工作

Octave regexp在八度音程中无法正常工作,octave,Octave,我已经从下载了纽约大学深度V2数据集和工具箱。工具箱中有一个名为get_synched_frames.m的脚本。我没有Matlab,所以我试着用八度音阶运行它。不幸的是,它没有像预期的那样工作 线路 % Faster than matlab's Dir function for big directories and slow % distributed file systems... files = regexp(ls(sceneDir), '(\s+|\n)', 'split'); 只给

我已经从下载了纽约大学深度V2数据集和工具箱。工具箱中有一个名为get_synched_frames.m的脚本。我没有Matlab,所以我试着用八度音阶运行它。不幸的是,它没有像预期的那样工作

线路

% Faster than matlab's Dir function for big directories and slow
% distributed file systems...
files = regexp(ls(sceneDir), '(\s+|\n)', 'split');
只给

files =
{
  [1,1] = a-1300302776.479149-3987628315.dump
}

但是lssceneDir显示目录中的所有文件。有人经历过这种情况吗?

区别可能不在于regexp,而在于ls的返回值。ls在Matlab和倍频程中捕获其返回值时的行为方式不同。Matlab的ls返回一个char行向量单个字符串作为char,其中列出了多个文件,作为一个带有嵌入换行符的多行字符串;Octave的ls返回一个二维字符数组,每行一个文件。IMHO的八度音阶格式更好;以可靠正确的方式解析Matlab的ls输出是非常困难的。那个regexp代码是不够的

您可能只需要八度音阶:

files = cellstr(ls(sceneDir));

差异可能不在regexp中,而是在ls的返回值中。ls在Matlab和倍频程中捕获其返回值时的行为方式不同。Matlab的ls返回一个char行向量单个字符串作为char,其中列出了多个文件,作为一个带有嵌入换行符的多行字符串;Octave的ls返回一个二维字符数组,每行一个文件。IMHO的八度音阶格式更好;以可靠正确的方式解析Matlab的ls输出是非常困难的。那个regexp代码是不够的

您可能只需要八度音阶:

files = cellstr(ls(sceneDir));