2017-08-05 243 views
1

我正在绘制一个脑电时间序列在MATLAB中。矢量是4097 * 1。记录信号的持续时间是23秒。 MATLAB绘图函数将y轴上的振幅和x轴上的样本数量绘制成信号。但是,我需要5秒的倍数的x轴上的时间。该图在x轴上随时间显示(参考文献)。 我使用'xticks'尝试了以下代码,但x轴保持不变。MATLAB时间序列图xticks

hFig = figure; 
hAx = gca; 
ts = 0:length(d); % the data time series 
stairs(ts(2:end), d, 'LineWidth', 2); 
xticks ([0 5 10 15 20 25 30]) 
hAx.XLabel.String = 'Time (Seconds)'; 

enter image description here

我感谢您的支持。谢谢。

+0

当你使用'xticks'功能时,你会得到什么? –

+0

'set(gca,'XTick',0:5:30)''? –

+0

这不仅仅是选择x-ticks的问题,轴的缩放不正确。也许@SardarUsama表示可以在执行我的解决方案之后添加下面的内容,以便根据OP的要求给出确切的刻度标记。 – crazyGamer

回答

1

你打算做的是正确地缩放你的X轴。请尝试以下操作:

hFig = figure; 
hAx = gca; 
ts = 0:length(d)-1; % the X axis of data time series 
% Scale the X-axis to 23 seconds 
ts = ts * (23/length(d)); 
stairs(ts, d, 'LineWidth', 2); 
hAx.XLabel.String = 'Time (Seconds)'; 

现在,您的X轴是一个简单的整数列表,等于样本数量。如上正确缩放它们应该会给你逼真的X轴。