在matlab中将数字格式转换为时间格式

时间:2015-01-09 20:37:20

标签: matlab datetime

我有1小时的数据。我现在的时间轴是数字形式

1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0

我想将其更改为时间格式,如

8:00,8:15,8:30,8:45,9:00

我可以在其中定义开始时间,结束时间和时间间隔。

我尝试使用datetickdatenum,但它不适用于我。我的时间数据是一个包含60000个元素(大小为1 * 6000)的矢量,而我的另一个测量矢量也具有相同的大小。

1 个答案:

答案 0 :(得分:3)

为了获得最大程度的控制,您可以手动完成:

% Plot data
hours = linspace( 0, 2, 6000);  % time base for plot
data = randn( size( hours ) );  % data for plot
plot( hours, data )

% Compute tick positions
tickPos = min( hours ) : 0.25 : max( hours );                  % every quarter hour from start to finish
timeZero = datenum( 2015, 01, 09, 08, 00, 00 );                %  measure from 8:00 this morning
timeStamps = timeZero + tickPos / 24;                          % datenum returns a value in units of days, so divide tickPos by 24 to convert from hours to days
timeStampStrings = cellstr( datestr( timeStamps, 'HH:MM' ) );  % or whatever format seems best
set(gca, 'xlim', hours( [ 1 end ] ), 'xtick', tickPos, 'xticklabel', timeStampStrings )

...但使用datetick的正确方法是确保图的x轴以datenum为单位:

plot( timeZero + hours / 24,  data )
datetick( 'x', 'HH:MM' )