gpt4 book ai didi

MATLAB:以每月为间隔的日期标记

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:44 24 4
gpt4 key购买 nike

我想从 2008 年 1 月到 2011 年 1 月以每月的间隔标记我的时间序列。

编辑:时间序列已经有一个 datenum 格式的时间组件:

733408 x1
733410 x2
etc...

我很抱歉没有在我最初的问题陈述中明确这一点。

每年两次的简单实现变得异常困惑:

years = [2008 2008 2009 2009 2010 2010 2011];
months = [1 7 1 7 1 7 1];
days = ones(1,7);
for k = 1:7
dates(k) = datenum(years(k), months(k), days(k));
end
labels = datestr(dates,'mmm-yy');
set(gca,'XTick',dates);
set(gca,'XTickLabel',labels);

将其扩展到月度报价:

years = [2008 ...repeat10times 2009 ...repeat10times 2010 ...repeat10times 2011]
m = 1:11; months = repmat(m,1,3)
days = ones(1:34)

必须有更简单的方法!

最佳答案

你知道datetick吗?对于您的示例:

% date (x-data)
years = [2008 2008 2009 2009 2010 2010 2011];
months = [1 7 1 7 1 7 1];

% do plot (NOTE: datenum is vectorized!)
plot( datenum(years, months,1), [your y-data] )

% set axis labels
datetick('x','mm-yyyy')

或者,更一般一点,

% generate periodic data
[years, months] = meshgrid(2008:2011, 1:12); % or whatever range you want

% do plot and set axes
plot( datenum(years(:), months(:), 1), [your y-data] )
datetick('x','mm-yyyy')

关于MATLAB:以每月为间隔的日期标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com