changing the X tick label
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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..
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 30 Nov. 2011
set(gca, 'XTickLabel', a-b)
Or if you prefer,
set(gca, 'XTickLabel', str2num(a(:)-b(:)) )
It is important for this purpose that the expression passed to str2num be a column vector rather than a row vector.
0 Kommentare
Weitere Antworten (2)
Matt Tearle
am 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.
0 Kommentare
Kelly Kearney
am 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 Kommentar
Matt Tearle
am 1 Dez. 2011
Ooh arrayfun. Cute. This was my sprintf solution:
lbls = regexp(sprintf('%d-%d;',[a(:),b(:)]'),';','split');
set(gca,'XTIckLabel',lbls(1:end-1))
Siehe auch
Kategorien
Mehr zu Axis Labels finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!