2017-08-05 119 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軸。