【问题标题】:MATLAB dir command not working properlyMATLAB dir 命令无法正常工作
【发布时间】:2014-12-18 10:46:57
【问题描述】:

我有一个包含 9 个 .htk 文件的文件夹。我需要使用“dir”,然后在循环中使用“readhtk”将它们导入 MATLAB,但 DIR 似乎提供了 10 个文件而不是 9 个!这是我的代码:

htkfiles = dir('/Users/Desktop/Acsegment/mfcdir/*.htk');
nhtkfiles = length(htkfiles); % 10!!! It should be 9 tough!
data = cell(nhtkfiles,2);
for k = 1:nhtkfiles
    b(k,1) = strcat({'/Users/Desktop/Acsegment/mfcdir/'},{htkfiles(k,1).name});
    eval(['data{k,1} = readhtk(b{k,1});']);
end

查看 htkfiles 中的文件名时,我有这样的:

  htkfiles(1,1).name = '.htk'
  htkfiles(2,1).name = 'fadg0_si1279.htk'
  htkfiles(3,1).name = 'fadg0_si1909.htk'
  htkfiles(4,1).name = 'fadg0_si649.htk'
  htkfiles(5,1).name = 'fadg0_sx109.htk'
  htkfiles(6,1).name = 'fadg0_sx19.htk'
  htkfiles(7,1).name = 'fadg0_sx199.htk'
  htkfiles(8,1).name = 'fadg0_sx289.htk'
  htkfiles(9,1).name = 'fadg0_sx379.htk'
  htkfiles(10,1).name = 'faks0_si943.htk'

与我在该文件夹中看到的相比,第一个文件不应该在那里!有人知道为什么我要多出一个文件吗?

【问题讨论】:

  • 你在 Linux 上工作吗?在Linux中,名称以.开头的文件是隐藏文件
  • 哦,我不知道,那我该如何修复它才能正常工作?
  • 过滤掉以.开头的名字
  • 在这种特殊情况下,只需将您的 dir 更改为 f*.htk 即可。 (另外,不需要eval)。
  • nkjt:我明白你的意思,但我实际上有很多文件(1344 个文件),并不是所有文件都以 f 开头。但是我如何过滤掉以'.'开头的文件?

标签: matlab


【解决方案1】:

正如 cmets 中提到的:dir 命令实际上可以正常工作,只是恰好有一个隐藏文件。

这些以点开头的文件可以从您的列表中删除,如下所示:

d=dir;
d(strncmp({d.name},'.',1))=[];

【讨论】:

  • 帮了大忙!非常感谢 ! :)
猜你喜欢
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多