脚本添加一个列值和读取多个txt文件从不同的文件夹
36视图(30天)
显示旧的评论
我有6个文件夹,每个文件夹中有一个文本文件三列ω,G, G值。想要添加一个新列粘度值和还阅读所有的文本文件在一个代码从不同的文件夹
一个= readtable (
“Pure_melt.txt”
);
a1 = (: 1);
a1 = table2array (a1);
b = (:, 2);
b = table2array (b);
g1 = b。^ 2;
c = (:, 3);
c = table2array (c);
g2 = c ^ 2;
v =√g1 + g2) / a1;
f = [a1 ';b”;c ';v ');
file_ID = fopen (
“Pure_melt.txt”
,
' w '
);
t =
“ωgp gdp vis”
;
流(file_ID sprintf (
' % s % s % s % s \ n”
、t));
流(file_ID
' \ n % 3 f % 3 f % 3 f % 3 f \ n”
f);
文件关闭(file_ID);
这仅仅是一个代码,我的代码运行一个文本文件
想要运行的所有6文本文件在一个代码
谢谢提前
答案(1)
Kautuk拉吉
2023年6月14日17:26
这是一个例子
MATLAB代码
这应该完成你所说:
%定义包含文本文件的文件夹的名称
folder_names = {“folder1”,“folder2”,“folder3”,“folder4”,“folder5”,“folder6”};
%初始化空数组来存储数据
omega_all = [];
Gprime_all = [];
Gdoubleprime_all = [];
viscosity_all = [];
%遍历文件夹
为i = 1:长度(folder_names)
%文件夹的名称
folder_name = folder_names {};
%得到所有文本文件的文件夹的名称
file_names = dir (fullfile (folder_name‘* . txt”));
%遍历文本文件
为j = 1:长度(file_names)
%的文本文件的名称
file_name = fullfile (folder_name file_names (j) . name);
%加载文本文件中的数据
data =负载(file_name);
%提取感兴趣的列
ω=数据(:1);
Gprime =数据(:,2);
Gdoubleprime =数据(:,3);
%计算粘度
粘度= Gdoubleprime。/ω;
%追加数据到数组
omega_all = [omega_all;ω);
Gprime_all = [Gprime_all;Gprime];
Gdoubleprime_all = [Gdoubleprime_all;Gdoubleprime];
viscosity_all = [viscosity_all;粘度];
结束
结束
%将数据合并到一个矩阵
data_all = [omega_all Gprime_all、Gdoubleprime_all viscosity_all);
%将数据保存到一个文件中
保存(“all_data.mat”,“data_all”);
这段代码假设
文本文件
在所有文件夹都有相同的格式,三列的数据由空格隔开。如果格式不同,您可能需要修改代码正确地读取数据。
代码从每个文本文件加载数据,计算粘度和附加数据数组。然后结合数组到一个矩阵和矩阵保存到一个文件。