我想在一个文件夹中一一读取多个 wav 文件。我是这样写的,但它给出了“无效的 Wave 文件。原因:无法打开文件。” 错误。但是当我将 t 更改为数字时,它可以工作。
for t=1:10
myFile=['path\','t.wav'];
[ speech, fs] = wavread( myFile);
end
我想在一个文件夹中一一读取多个 wav 文件。我是这样写的,但它给出了“无效的 Wave 文件。原因:无法打开文件。” 错误。但是当我将 t 更改为数字时,它可以工作。
for t=1:10
myFile=['path\','t.wav'];
[ speech, fs] = wavread( myFile);
end
您需要将变量转换t
为字符串。您要求打开文件'path\t.wav'
,该文件可能不存在。由于变量t
是整数,您可以使用int2str
它来将其转换为字符串:
myFile = ['path\' int2str(t) '.wav'];
只有字符串可以与其他字符串连接。当然,如果您的文件少于 10 个,那么您将遇到另一个问题...
您可以使用特殊的 print f 命令:sprintf(); 分配 myFile 这个字符串。
myFile = sprintf('path\%d.wav',t);
sprintf 在 MATLAB 中的工作方式与在 C 环境中的工作方式相同。