Matlab之批量提取数据

写在前面的,软件不太强大,每次保存都需要生成rec和dark的文件,在处理是只需要一个就行了,所有网上查看了下运用批处理的命令去掉多余的文件:

解决办法:windows命令模式下CMD进入文件的目录,输入命令:del /q *rec*.csv(*rec*就是需要删除的包含rec的文件)

昨天下午搞了一个下午的数据提取,想过了用多种方法包括java,delphi等,最后还是想到用Matlab比较方便,选对工具真的很重要啊

我的数据格式:有多个csv文件,对我有用的只有B15:B270的数据,如何提取,看下面代码:

wave = csvread('.\dark\dark.csv',14,0,[14,0,269,0]);%看参数,具体参数的功能参考相应的Matlab书籍
dark =csvread('.\dark\dark.csv',14,1,[14,1,269,1]);%获取背景参数,当前目录的下级目录
ref = csvread('.\ref\ref.csv',14,1,[14,1,269,1]);%获取参比
B = ref-dark;
files = dir('*.csv');%获取当前目录的文件数,注意读取的是csv文件
l = length(files);
C = [];
for i = 1:l
    filename = files(i).name;%获得文件名
    A=csvread(filename,14,1,[14,1,269,1]);%读入指定列的数据,详细参数功能参考对应的代码
    D = B./(A-dark);%矩阵对应的数相除
    C = [C D];%矩阵列合并
end
E = [wave log10(C)];
%dlmwrite('result.txt',C,'delimiter','\t');%以文本的形式输出,注意指定精确度'precision','%f32'
xlswrite('result.xlsx',E,'Sheet1');%xls的形式输出
msgbox(['complete! ' num2str(l) ' xls files.']);

你可能感兴趣的:(Matlab)