我有一个包含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'
与我在该文件夹中看到的相比,第一个文件不应该在那里!任何人都有任何想法为什么我得到一个额外的文件?
答案 0 :(得分:1)
如评论中所述:dir
命令实际上正常工作,恰好是一个隐藏文件。
这些以点开头的文件可以从列表中删除,如下所示:
d=dir;
d(strncmp({d.name},'.',1))=[];