2016-03-06 107 views
-1

我繪製了一些變量和時間之間的關係。 時間位於矩陣中;部分如下:在Matlab中繪製時間的錯誤

> 19.997777777777774 
    19.998055555555560 
    19.998333333333338 
    19.998611111111117 
    19.998888888888892 

這是UTC時間(時間間隔:1小時,間隔:1秒)轉換後帶小數點的小時數。

我獲得的身材似乎有錯誤: changes of latitude in time

它可以通過一些常見的原因造成的我沒有注意到? 謝謝。

更新:

h=nmea/10000; 
h_int = floor(h); 
h_dec = h - h_int; 

m = h_dec * 100; 
m_int = floor(m); 
m_dec = m - m_int; 

s = m_dec * 100; 

time= h_int + m_int/60 + s/3600; 

參考NMEA:195955 195956 195957 195958 195959]

+0

您可以發佈您用於繪圖的代碼嗎? – Aziz

+0

plot(time,data1,time,data2) – reznik

+0

以及用於將時間轉換爲十進制小時的代碼? – Aziz

回答

2

這是因爲你所定義的分鐘殘留的方式。 如果您在更改分鐘時運行代碼,則會出現問題。在這裏,您可以看到s的第三值「跳」(-a一輪分鐘),導致跳在time

nmea=[195858 195859 195900 195901 195902] 
h=nmea/10000; 
h_int = floor(h); 
h_dec = h - h_int; 
m = h_dec * 100; 
m_int = floor(m); 
m_dec = m - m_int; 
s = m_dec * 100 
time= h_int + m_int/60 + s/3600 

s = 

    58.0000 59.0000 100.0000 1.0000 2.0000 


time = 

    19.9828 19.9831 19.9944 19.9836 19.9839 

對於較短的和正確的方法,你可以使用mod功能:

nmea=[195858 195859 195900 195901 195902]; 
m_int=(mod(nmea,10000)-mod(nmea,100))/100; 
s=mod(nmea,100); 
time= h_int + m_int/60 + s/3600 
time = 

    19.9828 19.9831 19.9833 19.9836 19.9839