该方法是借鉴争渡、争渡博主的文章,在他的文章上略微改动,进行求解。
Matlab新手对PIV数据的大量dat文件中的某一列进行平均值计算,该方法可以对整个文件夹内的dat文件进行求平均值,对于文件名好像没有有求,dat文件内容如下:
该dat文件中有数据和字母,总共是899个文件,文件名为 dat_1_2.dat。
博主的原内容在这里:
争渡、争渡/ruredfive
使用MATLAB读取指定文件夹中全部指定格式的文件_诗酒趁年华的博客-CSDN博客使用MATLAB读取指定文件夹中全部指定格式的文件以csv格式为例(其他另外类型文件类似),读取文件中所有.csv文件,并将需要使用到的数据转存到一个矩阵中。clc;clear; % 清空之前所有的变量、输入及绘图close all;file_position = 'E:\Data\'; % 文件夹位置及名称file_type = '*.csv'; % 读取的文件类型file_names = /ruredfive/article/details/115730042
注意:使用需要修改文件路径。生成的数据文件为1.xlsx。
具体编码如下:
clc;clear; % 清空之前所有的变量、输入及绘图close all;%%该文件可以实现对dat文件进行批量读取数据并进行数据中的某一列数据求平均值,将得到的数据储存在xlsx文件中file_position = 'D:\文件夹\';% 文件夹位置及名称file_type = '*.dat';% 读取的文件类型file_names = dir([file_position file_type]); % 获取文件的全部名称datnum = length(file_names); % 计算文件个数database = []; % 提前定义一个空矩阵% 建立循环读取for m = 1:datnummidname = file_names(m);% 找到每次读取的文件名everydat = [midname.folder '\' midname.name]; % 拼接字符串,组成完整的文件名onedata = importdata(everydat); % 读取每个dat文件的指定区域参数,根据dat内容自己做出调整A=onedata.data;% 将onedata数据树中的data文件读取出来B=A(:,7); %取A矩阵中的第七列给B矩阵C=mean(B);%对A矩阵中第七列做平均值,赋值给C矩阵database = [database C];% 将每次读取的数据存到同一个矩阵中endwritematrix(database,'1.xlsx'); % 转存到同一个1.xlsx文件中