【发布时间】: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