How to specify path name in sprintf?

I have a folder specified by the path D:\BTP\0 (1)\0 . This contains wave file ranging from 0 to 59 and I need to read each of them using the command
for m=0:59
filename = sprintf('%d.wav',m);
[s,fs] = audioread(filename);
end
I need to specify file name inside sprintf command. How do I do so?

 采纳的回答

Domanic
Domanic 2018-1-28
编辑:Domanic 2018-1-28
You can do this through string concatenation:
mypath = 'D:\BTP\0 (1)\';
for m=0:59
filename = [mypath num2str(m) '.wav'];
[s,fs] = audioread(filename);
end
If it needs to be inside sprintf, you can use:
mypath = 'D:\\BTP\\0 (1)\\';
filename = sprintf([mypath '%d.wav'],m);
where the double slash, \\, generates the single \ in this context.

4 个评论

Thank You man. Got it done.
With sprintf:
mypath = 'D:\BTP\0 (1)\';
filename = sprintf('%s%d.wav', mypath, m);
However I recommend instead
mypath = fullfile('D:', 'BTP', '0 (1)');
filename = fullfile(mypath, sprintf('%d.wav', m));
I also wanted to ask one more: I have wave files with names like:
00 01 02 03 04 .... and so on till 59. How do I read them using sprintf? The first digit of the filename specifies speaker id and the second digit specifies utterence id .
filename = fullfile(mypath, sprintf('%02d.wav', m));

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Movie 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by