#基于Matlab的文件批量操作
批量操作相同后缀的文件需要使用uigetdir函数,其具体含义如图。
##批量读取文件列表模板
对于文件的批量操作,首先需要读取所有需要操作的文件名,下列代码为读取相应后缀文件名并批量处理代码。
clc;
clear;
selpath=uigetdir;
files=dir(selpath);
files=files(cell2mat({files(:).isdir})~=1); %去除文件夹及其他非文件
for i=1:length(files)
if files(i).name(end-2:end)=='csv' %只对CSV格式的文件进行操作,可改成txt等后缀
assignin('base','filepath'.files(i).folder); %将值写到基础工作区
assignin('base','filename'.files(i).name);
fprintf(files(i).name);
fprintf('\n');
batch_fun; %一个名为batch_fun.m的文件,包含操作处理文件的逻辑
end
end
##文件操作模板
上述代码的batch_fun为一个名为batch_fun.m的文件,其内容包含了文件内数据的批量操作,其模板可按如下编写:
clearvars -except filepath filename files;
close all;
file.path=evalin('base','filepath');从基础工作区读取变量
file.name=evalin('base','filename');
dataname=strcat(file.path,'\',file.name);
data_struct=importdata(dataname); %读取文件内数据
%对数据进行相应处理
至此,完成相同文件的批量处理和操作数据