0

我想在一个文件夹中一一读取多个 wav 文件。我是这样写的,但它给出了“无效的 Wave 文件。原因:无法打开文件。” 错误。但是当我将 t 更改为数字时,它可以工作。

for t=1:10
    myFile=['path\','t.wav'];
    [ speech, fs] = wavread( myFile);
end
4

2 回答 2

0

您需要将变量转换t为字符串。您要求打开文件'path\t.wav',该文件可能不存在。由于变量t是整数,您可以使用int2str它来将其转换为字符串:

myFile = ['path\' int2str(t) '.wav'];

只有字符串可以与其他字符串连接。当然,如果您的文件少于 10 个,那么您将遇到另一个问题...

于 2013-06-03T22:46:40.273 回答
0

您可以使用特殊的 print f 命令:sprintf(); 分配 myFile 这个字符串。

myFile = sprintf('path\%d.wav',t);

sprintf 在 MATLAB 中的工作方式与在 C 环境中的工作方式相同。

于 2013-06-03T23:51:00.353 回答