Friday, November 30, 2007

matlab funktion zum formatieren von ticklabels

Hallo,

diesmal auf deutsch, eine kleine Funktion, um in matlab die Achsennumerierung "auf deutsch" umzusetzen.
das heisst, es wird "." als tausender separator benutzt.

die funktion macht aus
0 -> 0
1000 -> 1.000
1111 -> 1.111
1110 -> 1.110
1100 -> 1.100
10000->10.000

usw...

hier ist die funktion:


function out = StrFormat(in)

%% 1000
t=floor(in./1000);
%% 100
c= (in - t*1000);

%% merge
for i=1:1:length(in)
str_t = num2str(t(i));
str_c = num2str(c(i));

switch length(str_c)
case 3
% alles ok
case 2
str_c(3) ='0';
case 1
str_c(2:3) = '0';
otherwise
disp('error in switch str_c')
end

out{i} = [str_t '.' str_c ];
if out{i} == '0.000'
out{i} = '0';
end
end


wie funktioniert die Funktion? Hier eine kleine Hilfe:

yticklabel=StrFormat(get(gca,'YTick'));
xticklabel=StrFormat(get(gca,'XTick'));
set(gca,'YTickLabel',yticklabel,'XTickLabel',xticklabel)

No comments: