changing the X tick label
Show older comments
hi everybody, I am looking for a way to change the X tick labels not by hand , because it's a lot of ticks to change' i want to do it by loop , I have to vectors a=[ 1 2 3 4 5] b = [ 10 9 8 7 6] and my X tick label now is 1 2 3 4 5, but i want it to be : 1-10 2-9 3-8 4-7 5-6, I guess it involves somehow num2str function but I am not sure how or if..
Accepted Answer
More Answers (2)
Matt Tearle
on 30 Nov 2011
If a and b are numeric, then
lbls = strcat(strtrim(cellstr(num2str(a(:)))),'-',strtrim(cellstr(num2str(b(:)))))
set(gca,'XTickLabel',lbls)
Ugly, but it gets rid of any excess spaces.
Kelly Kearney
on 30 Nov 2011
Perhaps a little less ugly that Matt's suggestion (though not by much):
lbl = arrayfun(@(x,y) sprintf('%d-%d',x,y), a, b, 'uni', 0);
set(gca, 'xticklabel', lbl);
1 Comment
Matt Tearle
on 1 Dec 2011
Ooh arrayfun. Cute. This was my sprintf solution:
lbls = regexp(sprintf('%d-%d;',[a(:),b(:)]'),';','split');
set(gca,'XTIckLabel',lbls(1:end-1))
Categories
Find more on Axis Labels in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!