我想读取包含在文件夹中的所有wav文件,并将每个文件的样本保存在包含在其他文件夹中的几个cvs文件中。 这是我的代码:
dirMask = 'inputFolder\*.wav';
wavRoot = fileparts(dirMask);
Files=dir(dirMask);
for k=1:length(Files)
FileNames = fullfile(wavRoot, Files(k).name);
[s,fs] = audioread(FileNames);
end
fid = fopen('\filename.xls','a');
fprintf(fid,'%f\n',num2str(s));
fclose(fid);
此代码不起作用。我怎么能这样做?
答案 0 :(得分:0)
首先,请注意您使用的是%f,这是用于花车,但是您正在转换" s"成一个字符串。此外,\ n跳转到下一行,因此如果您需要多个列,则必须检查何时使用\ n或\ t(制表符)或仅使用&#34 ;;"例如。无论如何都要检查matlab data formatting
因此,如果您知道可写的确切列数(例如3列):
fprintf(fid,'%s \t %s \t %s \n',string1, string2, string3);
如果你想在一个循环内完成它,你可以检查你的迭代器并添加" \ n"每X个字符串。
E.g。
ncols = 3
for i = 1:21
mystring = num2str(i)
if mod(i,ncols) == 0
fprintf(fid,'%s \n',mystring);
else
fprintf(fid,'%s ', mystring);
end
end