Hi,
I have some data from a sensor and corresponding timestamps. How do I plot this data? (x axis - timestamps, y-axis - data) plot function gives empty figures. Probably because timestamps cannot be put in a linear scale. I tried semilogx - this also gives empty figures.
How do I do this?
Thanks in advance

2 件のコメント

Ryan Smith
Ryan Smith 2016 年 11 月 28 日
Can you provide the data as an attachment?
lexi11
lexi11 2016 年 11 月 28 日
Hi, the timestamps are in unix format. I have attached a set of them. Since in excel it shows as 1.48E+10 format, I have changed the type in excel to 'number' so that you can see the entire number. So it adds .00 in the end to each value, but originally I get in the 1.48E+10 like number representation. Thank you.

サインインしてコメントする。

 採用された回答

dpb
dpb 2016 年 11 月 28 日
編集済み: dpb 2016 年 11 月 28 日

1 投票

Convert from whatever format the timestamps are in to a Matlab representation of dates...with R2014 up, there's the datetime class; prior to that use datenum. See <datetime> for current versions; plot is datetime -aware.

7 件のコメント

Walter Roberson
Walter Roberson 2016 年 11 月 28 日
datetime() offers a 'ConvertFrom', 'posixtime'. The numbers you showed in the image convert into dates today if you divide them by 1000 before doing the conversion.
lexi11
lexi11 2016 年 11 月 28 日
This works!!! Thank you very much, dpb and Walter.
lexi11
lexi11 2016 年 11 月 30 日
Hi Walter, I would also like to know why we divide by 1000? Is this a standard procedure? Thanks.
Munshi Mahbubur Rahman
Munshi Mahbubur Rahman 2018 年 10 月 30 日
what have you guys used for the dateType argument? My data is in unix timestamp
dpb
dpb 2018 年 10 月 30 日
Well, Unix timestamp is in seconds from Jan 1, 1970 but your data are too big for that; they seem to have been encoded as integer values to the millisecond resolution...
>> t=datetime(1489337264031/1000,'ConvertFrom','posixtime')
t =
datetime
12-Mar-2017 16:47:44
>> t.Format=[t.Format '.SSS']
t =
datetime
12-Mar-2017 16:47:44.031
>>
You'll notice the fractional seconds match up with the last significant digits in the original number.
Peter Perkins
Peter Perkins 2018 年 10 月 31 日
In recent versions of MATLAB, you can also convert directly from ms since 1970:
>> datetime(1489337264031,'ConvertFrom','EpochTime','TicksPerSecond',1000,'Format','dd-MMM-yyyy HH:mm:ss.SSS')
ans =
datetime
12-Mar-2017 16:47:44.031
The 'Epoch' parameter defaults to 1-Jan-1970, which is convenient if you have posix timestamps.
dpb
dpb 2018 年 10 月 31 日
Thanks for making aware of that, Peter...

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

タグ

質問済み:

2016 年 11 月 28 日

コメント済み:

dpb
2018 年 10 月 31 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by