问题:在一个目录中,有一系列需要分析的文件,这些文件的名字都是数值,如距离值(0.1, 0.2, ... , 10.0),再加上一个后缀(.txt, .dat等)。 在分析数据的时候需要这些文件按文件名的数值排序,方便找规律。
代码:
1 % 文件目录名, 里面必须全部是数据文件, 且文件名字必须是距离数值 2 file_dirname = ‘E:\data\‘; 3 4 % 文件目录 5 file_dir = dir(file_dirname); 6 file_dir(1:2) = []; % 去掉目录"."和".." 7 8 % 文件数量 9 file_nums = length(file_dir); 10 11 % 文件序列 12 % 第1列 - file_dir 13 % 第2列 - 距离数值 14 % 第3列 - 文件名(无后缀) 15 % 注意: 此时文件序列可能并非按距离大小排列 16 for i = 1 : file_nums 17 [path, name, ext] = fileparts(file_dir(i).name); 18 file_seq{i, 1} = file_dir(i); 19 file_seq{i, 2} = str2double(name); 20 file_seq{i, 3} = name; 21 end 22 23 % 将文件序列按距离大小排序 24 file_seq = sortrows(file_seq, 2); 25 26 % 读取数据 27 for i = 1 : file_nums 28 data{i} = importdata([file_dirname, file_seq{i, 1}.name], ‘r‘); 29 end
结果:
目录"E:\data\"下的文件如下图:
程序执行后,变量file_seq为:
其中,file_seq{1, 1}的内容为:
时间: 2024-10-10 21:32:51