MATLAB批处理txt数据(雏形)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!声明:初学者自用,如果有高端操作的大佬欢迎批评指正。!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

应用场景:

在Ansys Fluent参数化批量计算之后得到如下文件结构:
K:\experiment\nojet-twi_files
在每一个dp子文件内:
在这里插入图片描述
在FLU的子文件夹Fluent中有该dp文件对应的计算结果.out文件:
在这里插入图片描述

目标:

轮流读取每个dp文件夹下FLU内Fluent内的.out数据文件,并提取该数据文件内最后一行除行序号以外的数据,将得到的每一个dp对应的数据作为一列,依次列入一个新的数组,最后得到一个5列的新数据,进行后续的作图。

程序:

clear
dir_path = 'K:\experiment\nojet-twi_files\';   %输入路径,所有dp文件的上一级
%save_dir = 'K:\experiment\nojet-twi_files_matlab';   %输出路径
fileFolder=ls(dir_path);   %列出主目录下的所有子文件夹,包括所有dp文件的列表
delimiterIn   = ' ';   % imputdata的分隔符
headerlinesIn = 3;    % 头文件行数,用于import从指定行开始读取
for i=5:9   %读取待处理子文件夹,轮流读取每一个dp
    k=i-4;
    file_path = strcat(dir_path,strtrim(fileFolder(i,:)),'\FLU\Fluent\','report-def-0-rfile.out'); %读取当前dp文件夹子文件及更下一级文件夹内的.out数据文件
    A=importdata(file_path, delimiterIn, headerlinesIn);  %读取.out的数据
    data_num=A.data; %提取数据
    N=size(data_num);  %得到当前数据的维度
   % disp(file_path);
    n=N(1);%统计共有多少行数据,用于处理最后一行的数据
    result1=data_num(n,:);%提取最后一行的数据
    result2(:,k)=result1.';%按照列存储到result2中
    result3=result2(2:N(2),:);%去掉源数据文件第一列的行序号
    sort(result3,'descend')  %排序,如果无排序需求可省略。
    
end

结果:

在这里插入图片描述


版权声明:本文为weixin_42230462原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。