Matlab:读取并保存多个文件
我想读取文件夹中包含的所有wav文件,并将每个文件的示例保存在其他文件夹中包含的几个cvs文件中。 这是我的代码:Matlab:读取并保存多个文件,matlab,file,loops,for-loop,Matlab,File,Loops,For Loop,我想读取文件夹中包含的所有wav文件,并将每个文件的示例保存在其他文件夹中包含的几个cvs文件中。 这是我的代码: dirMask = 'inputFolder\*.wav'; wavRoot = fileparts(dirMask); Files=dir(dirMask); for k=1:length(Files) FileNames = fullfile(wavRoot, Files(k).name); [s,fs] =
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);
这个代码不起作用。如何执行此操作?首先,请注意,您使用的是%f,它用于浮点数,但您正在将“s”转换为字符串。此外,\n跳转到下一行,因此如果需要几列,则必须检查何时使用\n或\t(制表符)或仅使用“;”例如。无论如何都要检查 因此,如果您知道确切的列数(例如3列),您可以编写:
fprintf(fid,'%s \t %s \t %s \n',string1, string2, string3);
如果要在循环中执行此操作,可以检查迭代器并每X个字符串添加“\n”
例如
“此代码不起作用”是什么意思?首先,您必须指定文件名mm而不是*.csv。第二:将“wt”替换为“a”,以便追加而不是一次又一次地覆盖以前的结果。接下来可能需要将fprintf(…,s)替换为fprintf(…,num2str(s)),但不确定-可能fprintf也会自动转换它。我修改了代码,但我希望每个wav文件的样本都在xls\cvs文件的每一列中可视化。我该怎么做?
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