0

我有这样的文本文件:

10:00:15:956 0,0155260005803643
10:00:21:968 0,0155280030632315
10:00:21:968 0,0155270018379389
10:00:21:968 0,0155260006126463
10:00:22:069 0,0155239981620611
10:00:22:090 0,0155249993873537

第一列是毫秒精度的时间,第二列是值。我需要绘制图表,其中 X 轴是时间,Y 轴是值。

  • 我应该使用什么功能来读取文件?dlmread,文本扫描,导入数据?
  • 如何强制matlab识别“时间”?我可以以任何需要的格式(10:00:22:090 或 10.00.22.090 或其他任何格式)编写时间,但我需要 matlab 才能正确理解和处理时间标签。例如,10:00:22:090 和 10:00:23:090 之间的差异是一秒,并且应该在 X 轴上的这些标签之间使用该间隔。我想在 X 轴上看到“时间”,但我不想想要将时间转换为一些“不可读”的 int 值或类似的值(例如,从 10.00.00 开始的毫秒数。)
4

1 回答 1

2

您可以在几秒钟内拥有它并datatics在绘图中使用。注意我有一个快速修复来处理第二列中的逗号。可能你不需要它。

f = fopen('foo.txt');
data = textscan(f, '%f:%f:%f:%f %f,%f');
fclose(f);

% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';

flvec = [1 1e-16];
y = [data{5:6}] * flvec';

xindays = x / (24*60*60);
plot(xindays, y, 'x');
datetick('x', 'HH:MM:SS');
于 2012-07-22T12:03:37.893 回答