changing the X tick label
41 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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!