2017-07-13 10 views
-1

私は3日に分けられたphメーターで取得しています。私は毎日hh:mm:ss形式で時刻を抽出しました。つまり、最初の日は12:32から14:39,から16:17などです。温度(23-24°、2日-22-24など)と同じです。matabのプロット関数でソートされた時間軸と温度軸

今は(phwrtTTime)のデータをプロットしなければならないが、私は3時間とTベクターを連結し、各時間および温度のための単一の列ベクトルを作成した場合、MATLABは自動的に値を値の増加にソートプロットの軸のx。私は軸に沿って元の値を維持する必要があります(値は14:3214:3314:3412:2412:25などである必要があります。これは取得時にデータの連続性を保つ必要があるためです)。

+1

のようなあなたのデータに日付部分を割り当てますか? – patrick

+0

質問を編集して[mcve] – Steve

答えて

0

hh:mm:ssをdatenumに変換します。日、月、年を追加する必要がありますので、必要な順番に並べ替えてください。それからちょうどあなたの刻みをHH:MM:SSまたは秒にするか、必要なものを設定することができます。 ここをクリックしてください: https://www.mathworks.com/help/matlab/ref/datetick.html

0

からは、datetimeを使用できます。

あなたのコードは次のように見えるんどのような記録の実際の日付、または離れて一日ですいくつかの任意の日付のいずれかを選択し、

% Create 3 random time arrays of the format 'hh:mm:ss' 
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)]; 
T1 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')]; 
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)]; 
T2 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')]; 
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)]; 
T3 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')]; 

% Convert to dates on consecutive days 
D1 = datetime(strcat('2000-01-01-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss'); 
D2 = datetime(strcat('2000-01-02-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss'); 
D3 = datetime(strcat('2000-01-03-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss'); 

% Plot 
data = rand(30,1); 
plot([D1, D2, D3], data);