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

最初の列はミリ秒の精度の時間で、2番目の列は値です。軸Xが時間、軸Yが値であるグラフを描く必要があります。

  • ファイルを読み取るためにどの関数を使用する必要がありますか?dlmread、textscan、importdata?
  • matlabに「時間」を認識させる方法は?必要な形式(10:00:22:090または10.00.22.090など)で時間を書き込むことができますが、時間ラベルを正しく理解して処理するには、matlabが必要です。たとえば、10:00:22:090と10:00:23:090の差は1秒であり、軸Xのこれらのラベルの間で正確にその間隔を使用する必要があります。軸Xの「時間」を表示したいのですが、表示しません。時間を「読み取り不可能な」int値などに変換したい(たとえば、10.00.00から経過したミリ秒数)。
4

1 に答える 1

2

あなたは数秒でそれを持ちdatatics、プロットで使用することができます。2番目の列のコンマを処理するための簡単な修正があることに注意してください。おそらくあなたはそれを必要としないでしょう。

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 に答える