如何通过sprintf命令逐个读取波形文件?

时间:2018-01-28 09:54:13

标签: matlab printf

delegate wave文件如下:第一个数字 - 发言人ID,第二个数字 - 话语ID

00 01 02 03 04 。 。 。 59 我尝试使用

for m=0:5
for y=0:9
 file=sprintf('%s%d%d','E:\0 (1)\0\',m,y);
 [s,fs]=wavread(file);
end
end

但这会给出错误。或者我试过

mypath = 'E:\\0 (1)\\0\\';
filename = sprintf([mypath '%s%d.wav'],m,y); 
[s,fs] = audioread(filename);

但它给出了错误:

Function is not defined for sparse inputs.

请帮帮我。

1 个答案:

答案 0 :(得分:1)

您的问题似乎来自字符串连接。但由于您的文件格式和路径格式都不清楚,因此这只是一个示例代码,可以执行与您尝试的操作相近的操作:

for m = 0:5
    m_curr = num2str(m);

    for y = 0:9
        file = ['E:\' m_curr num2str(y) '.wav'];
        [s,fs] = wavread(file);
    end
end

wavread行设置调试断点,检查格式是否符合您的需要。如果没有,请相应更改。