2015-01-09 4 views
1

У меня есть данные за 1 час. Моя ось времени прямо сейчас в форме номерпреобразовать формат числа в формат времени в matlab

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 

, где я могу определить время начала, время окончания и интервал времени.

Я пробовал использовать datetick и datenum, но он не работает для меня. Мои данные времени - это вектор с 60000 элементами (размер 1 * 6000), а мой другой вектор измерения также имеет тот же размер.

ответ

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 бы для того, чтобы ось х Заговор находится в datenum единиц:

plot(timeZero + hours/24, data) 
datetick('x', 'HH:MM') 
Смежные вопросы