我怎么从.dat提取特定的行数据的值是变化的文件?

1视图(30天)
你好,我有一个大.dat文件(附件),我只是感兴趣与特定值的行约束数据的redesing如下所示。
这是.dat中的数据文件,如下所示:
$ NAME = D_Tstep1_OP_01约束数据
1.95063723 e + 00
改变TOPODRV NAME = M_OP_01美元
15932年 2 1.77575504 e 03 - - - - - - 3.88161658 e-01
17231年 2 1.80259062 e 03 - - - - - - 3.91727572 e-01
15291年 2 - - - - - - 1.13913637 e-02 2.21583925 e + 00
. .
. .
$ NAME = D_Tstep2_OP_01约束数据
3.95063723 e + 00
. .
. .
从上面的.dat文件,我只需要D_Tstep1_OP_01 = 1.95063723 e + 00的数据值90步(如D_Tstep1_OP_01、D_Tstep2_OP_01 ......., D_Tstep90_OP_01)。说我怎么提取数据有不同的分隔符从.dat文件并将其保存在excel中?我需要excel的数据在以下格式:
名称约束数据
D_Tstep1_OP_01 1.95063723 e + 00
D_Tstep2_OP_01 3.95063723 e + 00
. .
. .
D_Tstep90_OP_01 5.95063723 e + 00 %这 最后一个值 该文件
我很感激你的帮助。提前谢谢你。

接受的答案

马修•诺伊
马修•诺伊 2021年9月22日
你好
我写了这个小代码为您服务!
检查它
%的主要代码
[string_out, data_out] = retrieve_data (“Redesign2-0_OP_01.dat”);
C = [{“名字”}{“约束数据”};string_out ' data_out '];
writecell (C,“C_out.xlsx”);
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
函数[string_out, data_out] = retrieve_data(文件名)
fid = fopen(文件名);
tline = fgetl (fid);
%初始化
k = 0;
p = 0;
data_line = [];
ischar (tline)
k = k + 1;%循环线指数
tmp1 =包含(tline,“约束元数据名称= D_TStep ');
如果tmp1 & & ~ isempty (tline)
p = p + 1;
ind_eq = strfind (tline,“=”);
string_out {p} = (tline (ind_eq + 2:结束);%
data_line = k + 1;
结束
如果~ isempty (data_line) & & k = = data_line
data_out {p} = str2num (tline);%
结束
tline = fgetl (fid);
结束
文件关闭(fid);
结束
7评论

登录置评。

更多的答案(0)

类别

找到更多的在数据类型转换帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的