Function for setting tick markers on a variable length x axis.

1 回表示 (過去 30 日間)
Chris cjsholmes@hotmail.com
Chris cjsholmes@hotmail.com 2013 年 5 月 25 日
Hi,
I'm using Matlab to create a (primitive) reverberation unit, where the time based output will obviously change each time the program is run dependent on various factors.
The output (in samples) will always be a multiple of Fs (44100). My current plot code is as follows:
xlabel ('Time (Seconds)')
set(gca,'XTick',[Fs/2 Fs 3*Fs/2 Fs*2 5*Fs/2 Fs*3]) %Set the points at which tick markers occur
set(gca,'XTickLabel',{'0.5','1','1.5','2','2.5','3'}) %Sets the text under tick markers
This works for signals up to 3 seconds, but if I was to add anything longer then the tick markers will be absent (obvious). An amateur solution to this would simply be to create a very long list (say up to 10 seconds worth) of ticks that will appear when required (7*Fs/2 etc etc).
However, there must be a clever way of creating a function to do this (or there may be something already in Matlab I have overlooked?).
I was thinking along the lines of:
T = (length(x)/Fs) %Gives time in seconds of output
Then based on that time having a function to create a vector of numbers that goes from T/(T*2), to T. Giving me tick markers from 0.5 to T seconds. Then a similar calculation for the X Labels.
(I'm amateur at function calling etc, so go easy on me!)
Thanks a lot,
Chris

回答 (1 件)

John Barber
John Barber 2013 年 5 月 25 日
Hi Chris,
I'm not exactly sure what you're looking for, but you might want to try my File Exchange program, xtickinterval, which you can find here: http://www.mathworks.com/matlabcentral/fileexchange/30674. This will draw ticks and labels at a user-specified interval, regardless of the axis length. It will update the ticks/ticklabels automatically when the axis limits change.
If it doesn't do exactly what you want, you might get some ideas of how to implement it by looking through the code.
-John

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by