我怎么读一个目录中的所有wav文件从一个循环?

14日视图(30天)
我有Emo-DB数据库包含文件名与文件名称如下wav文件
103 a01ab.wav
203 a01eb.wav
303 a01fa.wav
403 a01lb.wav
503 a01nc.wav
603 a01tc.wav
703 a01wa.wav
808年a01aa.wav
908年a01ab.wav
1008年a01ec.wav
1108年a01fd.wav
1208年a01lc.wav
1308年a01na.wav
1408年a01td.wav
1508年a01wa.wav
1608年a01wc.wav
1709年a01aa.wav
1809年a01ea.wav
1909年a01fa.wav
20.09年a01lc.wav
2109年a01nb.wav
在这里
  • 1 - 2 #位置:扬声器的数量
  • 为textspoken #位置3 - 5:代码
  • # 6:位置的情感
  • #位置7:如果有两个以上的版本这些屈指可数,b, c ....
现在我读所有这些文件如何使用使用audioread在一个循环。我试着下面的代码,但它不工作:
我= 0
j = 0时
k = 0时
fid = fopen(文件名,“一个”);
文件= sprintf (' % s % d % s % d % d.wav ',' D: \ BTP \ 0 (1) \ ',我,“\”j k);
(年代,fs) = audioread(文件);
结束
结束
结束

答案(2)

埃米尔哈姆萨
埃米尔哈姆萨 2018年4月21日

而不是试图自己创建的文件名,uou可以使用dir命令获取当前文件夹中所有文件的列表。然后使用阅读所有文件列表的扩展。wav。

文件= dir;
数= 0;
i =文件如果长度(i.name) > 4 & & i.name (end-3:结束)= =”。wav文件“%只读如果文件名是大那么四和扩展”。wav的数=计数+ 1;[f{数}fs{数}]= audioread (i.name);结束结束

这个脚本加载所有数据在细胞阵列ffs

2的评论

登录置评。


Dinesh艾耶
Dinesh艾耶 2018年4月27日
您可以使用与audioread fileDatastore定制函数。
//www.tatmou.com/help/matlab/ref/matlab.io.datastore.filedatastore.html

类别

找到更多的在开始使用DSP系统工具箱帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!