使用MATLAB读取指定文件夹中全部指定格式的文件
以csv格式为例(其他另外类型文件类似),读取文件中所有.csv文件,并将需要使用到的数据转存到一个矩阵中。
clc;clear; % 清空之前所有的变量、输入及绘图
close all;
file_position = 'E:\Data\'; % 文件夹位置及名称
file_type = '*.csv'; % 读取的文件类型
file_names = dir([file_position file_type]); % 获取文件的全部名称
csvnum = length(file_names); % 计算文件个数
database = []; % 提前定义一个空矩阵
% 建立循环读取
for m = 1:csvnum
midname = file_names(m); % 找到每次读取的文件名
everycsv = [midname.folder '\' midname.name]; % 拼接字符串,组成完整的文件名
onedata = xlsread(everycsv,'B46:B1046'); % 读取每个csv文件的指定区域参数,根据csv内容自己做出调整
database = [database onedata]; % 将每次读取的数据存到同一个矩阵中
end
fre_data = xlsread(everycsv,'A46:A1046'); % 读取时间轴数据
savedata0 = [fre_data database]; % 包含时间轴
csvwrite('E:\Data\space_ranging\Trace_0000.csv',savedata0,0,0); % 转存到同一个.csv文件中
figure,plot(fre_data,database); % 查看最后一次读取的数据
xlabel('Frequence / Hz');
ylabel('Intencity / cd');
title('All Signal');
此后读取文件时可只读取最终生成的一个.csv文件即可,能有效的提高读取速度。
注意
这种读取方式按照文件名称排序读取,文件名混乱时可能会出现读取顺序错乱现象,使用时最好注意一下文件读取顺序。可以读取完之后按照一定规律进行复原或重排。