从包含名称中日期的文件名数组中选择特定文件名

时间:2016-09-04 18:42:38

标签: matlab octave

如果我有一组.wav文件,我试图只选择月份或者每天/只做晚上​​psd(功率谱密度)平均值等或选择属于一个月的文件怎么去?以下是.txt文件中的前10个.wav文件,这些文件被读入matlab代码 -

AMAR168.1.20150823T200235Z.wav
AMAR168.1.20150823T201040Z.wav
AMAR168.1.20150823T201845Z.wav
AMAR168.1.20150823T202650Z.wav
AMAR168.1.20150823T203455Z.wav
AMAR168.1.20150823T204300Z.wav
AMAR168.1.20150823T205105Z.wav
AMAR168.1.20150823T205910Z.wav
AMAR168.1.20150823T210715Z.wav

yyyymmddTHHMMSSZ.wav是了解某些参数的格式的一部分。

非常感谢

1 个答案:

答案 0 :(得分:0)

你需要更加具体 所有文件始终以" AMAR168.1开头。"比如说?

无论如何,这是一个让你入门的一般方法:

AllFilenames = fileread ('filenames.dat');
FileNames    = strsplit (AllFilenames, '\n');
for i = FileNames                                          
  if ~isempty (strfind (i{:}, '20150823')); disp(i{:}); end
end   

你的文件名示例并不是非常有用,因为它们都有相同的日期,但无论如何,你明白这一点。

或者,如果文件名 总是 具有相同的格式和大小,您可以这样做,例如:

AllFilenames   = fileread ('filenames.dat');              
AllFilenames   = strvcat (strsplit (AllFilenames, '\n'));
LogicalIndices = categorical (cellstr (AllFilenames(:,15:16))) == '08';

获取月份为' 08'的所有行。例如。 这假设月份始终位于字符串

中的第15位至第16位