我有52个探针的特定时间间隔的大(1000,000 + KB)单列.txt文件数据(请参阅下面的格式)。通过阅读其他帖子,我有一个程序将来自单个探针的数据放入文件中(参见下面的程序)。
是否有人建议如何更改while循环以包含与探测数据值分隔的相应时间值逗号(请参阅下面所需的格式)?我希望能够为同事提供一个.txt文件,他们可以将其导入Excel以绘制探测数据。
***how my single column data .txt file is formatted***
59 lines of header information
time 1
probe 1 data
probe 2 data
...50 other probes
time 2
probe 1 data
probe 2 data
...50 other probes
and so on
% program to put probe 1 data (which repeats every 51 lines) into a file
m = 1;
d = fopen('C:\path.txt');
while ~feof(d)
for n=1:59
tline = fgetl(d);
end
while ischar(tline)
tline = fgetl(d);
Probe1(m).txt = tline;
m = m+1;
for n=1:51
tline = fgetl(d);
end
end
end
fclose(d);asdf
***desired format for single probe data .txt file***
time 1, probe 1 data at time 1
time 2, probe 1 data at time 2
and so on...
感谢您的时间和任何帮助。
答案 0 :(得分:0)
检查以下代码。您需要添加以读取时间值并存储它们。然后,您可以使用dlmwrite
保存csv
- 文件。
clc; clear;
num_head = 3; % number of header lines
num_probes = 3; % number of probes
f = fopen('data.txt','r');
% Ignore header
for i = 1:num_head
fgetl(f);
end
t_num = 1; % Actual time step
while ~feof(f)
time(t_num,1) = str2double(fgetl(f));
for p_num = 1:num_probes % loop through probes
probe_data(t_num,p_num) = str2double(fgetl(f));
end
t_num = t_num+1;
end
fclose(f);
for p_num = 1:num_probes
dlmwrite(sprintf('data_probes_%d.csv',p_num),[time probe_data(:,p_num)],',');
end
示例数据文件(每个时间点有3个标题行和3个探针):
header1
header2
header3
0.0
4
3
2
0.1
7
6
5
0.2
9
8
7