I need some help to formatting a data file in matlab.
3 次查看(过去 30 天)
显示 更早的评论
I need help formatting a data file in matlab. It is for my college research. The file has the pattern below.
[ No ] [ Temp ]
1 1 01:00:00
1 20.00
2 20.00
3 20.00
4 20.00
5 20.00
1 1 02:00:00
1 20.00
2 20.00
3 20.00
4 20.00
5 20.00
....
I would like to know how to store the data this way:
Time No1 No2 No3 ...
00:00:00 20.00 20.00 20.00 (here is the temp in each "no")
01:00:00 20.00 20.00 20.00 (the temp is changing by the time, but it is just an example)
02:00:00 20.00 20.00 20.00
4 个评论
Walter Roberson
2017-12-22
I do not mean the value of he entries.
You have
1 1 01:00:00
1 20.00
2 20.00
3 20.00
4 20.00
5 20.00
1 1 02:00:00
which has a line with a time, and then exactly 5 entries without a time, and then back to a line with a time. The next section shows exactly 5 entries after the line with the time as well. Is that 5 constant? Will there ever be cases like,
1 1 01:00:00
1 20.00
2 20.00
3 20.00
4 20.00
5 20.00
6 20.00
for example?
If the number after the line with the time is not always 5 lines, then is it the consistent within any one file?
采纳的回答
Walter Roberson
2017-12-23
fid = fopen('YourFileName.txt', 'rt');
fgetl(fid); %ignore the header
counter = 0;
while true
timeline = fgetl(fid);
if ~ischar(timeline); break; end %reached end of file
hms = sscanf(timeline, '%*d%*d%d:%d:%d');
counter = counter + 1;
Time(counter) = duration(hms(1), hms(2), hms(3));
No(counter, :) = cell2mat( textscan(fid, '%*f%f', 5) );
end
fclose(fid);
Then,
T = array2timetable(No, 'RowTimes', Time, 'VariableNames', {'No1', 'No2', 'No3', 'No4', 'No5'});
or
T = cell2table( [num2cell(Time), num2cell(No)], 'VariableNames', {'Time', 'No1', 'No2', 'No3', 'No4', 'No5'});
10 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Low-Level File I/O 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!