Matlab:读取并保存多个文件

时间:2017-10-09 15:15:44

标签: matlab file loops for-loop multiple-files

我想读取包含在文件夹中的所有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);

此代码不起作用。我怎么能这样做?

1 个答案:

答案 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