Matlab 在绘图中使用XTickLabel

Matlab 在绘图中使用XTickLabel,matlab,Matlab,我正在实现一个Matlab脚本,我想在其中绘制一个函数,如下所示: figure; plot(Flows(:,1),Flows(:,2)); title(strcat('f',num2str(j),'\_2013\_0',num2str(k))); xlabel('Timestamp'); ylabel('Energy flow'); set(gca, 'XTickLabel', datestr(Flows(:,1))); Flows是一个矩阵,它将csv文件作为输入,其中第一列是时间戳值。有

我正在实现一个Matlab脚本,我想在其中绘制一个函数,如下所示:

figure;
plot(Flows(:,1),Flows(:,2));
title(strcat('f',num2str(j),'\_2013\_0',num2str(k)));
xlabel('Timestamp');
ylabel('Energy flow');
set(gca, 'XTickLabel', datestr(Flows(:,1)));
Flows是一个矩阵,它将csv文件作为输入,其中第一列是时间戳值。有12个文件,每个月一个。在循环中,我读取文件并创建矩阵

Flows(i,1)=datenum(Input{i,1}{1,1},'YYYY-mm-DD HH:MM:SS');
Flows(i,2)=Input{i,1}{1,7};

但是,当我绘制趋势时,x轴仅显示从1月1日00:00到1月1日00:36的日期。至少从“月”的1s到月底,我如何在x轴上显示?我怀疑问题来自于从num到date的数据转换掩码,但我尝试了几个掩码,哪一个是合适的?

最后,我添加了以下几行:

set(gca,'XLim',[min(Flows(:,1)) max(Flows(:,1))]);
set(gca,'XTick',Flows(:,1));
set(gca, 'XTickLabel', datestr(Flows(:,1)));
但是,当我要绘制趋势图时,我得到以下例外

Values must be monotonically increasing

我怀疑您也必须调整“xticks”(以您想要标记的分辨率显示xticks)。参见这里的示例;你能提供你的数据吗?@Cici没错。不将
XTick
s与
XTickLabel
s匹配也是常见的陷阱,因为当你经过一定数量的点时,MATLAB不会自动创建刻度。@Jose Hdez,你使用的是什么版本的MATLAB?