如何让MatLab编写一个包含文件列表及其持续时间的txt?
我有一个包含几个wav文件的文件夹,我想让MatLab遍历所有这些文件,并将它们的持续时间写在一个txt文件中。有人知道怎么做吗? 我已经知道如何获取单个文件的持续时间:如何让MatLab编写一个包含文件列表及其持续时间的txt?,matlab,list,file,wav,duration,Matlab,List,File,Wav,Duration,我有一个包含几个wav文件的文件夹,我想让MatLab遍历所有这些文件,并将它们的持续时间写在一个txt文件中。有人知道怎么做吗? 我已经知道如何获取单个文件的持续时间: [w,fs] = wavread('filename.wav'); length = length(w)/fs; 但我不知道如何使循环读取文件夹中的所有文件 感谢您的帮助!谢谢 我还没有测试过这个,但类似的东西应该可以帮助您开始或大部分时间 fid = fopen('durations.txt'); % File to sa
[w,fs] = wavread('filename.wav');
length = length(w)/fs;
但我不知道如何使循环读取文件夹中的所有文件
感谢您的帮助!谢谢 我还没有测试过这个,但类似的东西应该可以帮助您开始或大部分时间
fid = fopen('durations.txt'); % File to save durations to
files = dir('*.wav'); % Creates a struct containing details of each file
for i = 1:length(files)
[w,fs] = wavread(files(i).name); % files(i).name is the filename
duration = length(w)/fs;
fprintf(fid, 'File %s is %.4f seconds long\n', files(i).name, duration); % Writes one line to the file
end
我还没有测试过这个,但是像这样的东西应该可以帮助你开始或者大部分的工作
fid = fopen('durations.txt'); % File to save durations to
files = dir('*.wav'); % Creates a struct containing details of each file
for i = 1:length(files)
[w,fs] = wavread(files(i).name); % files(i).name is the filename
duration = length(w)/fs;
fprintf(fid, 'File %s is %.4f seconds long\n', files(i).name, duration); % Writes one line to the file
end
您可能需要
files=dir('*.wav')
来获取所有文件名。不要使用与内置函数冲突的变量名,如length
。创建这样一个变量后,您不能使用该函数。您可能需要files=dir('*.wav')
来获取所有文件名。不要使用与内置函数冲突的变量名,如length
。创建这样一个变量后,您无法使用该函数。这与我要编写的内容基本相同,但我被召集参加了一次会议,lol.+1。@rayryeng我想我很幸运您参加了那个会议;)如果你愿意,可以到我们的MATLAB和Octave聊天室转转:)我们很多人经常在那里聚会!差不多是我要写的东西,但我被召集参加了一个会议,哈哈。@rayreng我想我很幸运你参加了那个会议;)如果你愿意,可以到我们的MATLAB和Octave聊天室转转:)我们很多人经常在那里聚会!