How can I transform a number to string with space using num2str?
35 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
What is the result of "num2str(1,'%2d')"? I think it should be " 1", but the results is "1". I mean there is no space before "1". Actually, the result of "num2str(1,'%02d')" is "01", and the result of "num2str(1,'%-2d')" is "1". And, the result of "sprintf('%2d',1)" is " 1".
How can I transform a number to string with space using num2str?
0 commentaires
Réponse acceptée
Simon
le 9 Déc 2013
Hi!
Maybe this way?
num = [1000; 1001];
% numeric part
numpart = arrayfun(@(x) sprintf('%2d', mod(x,100)), num, 'UniformOutput', false);
% letter part
letterpart = char(mod(num,26*100)./100+65);
% concat everything
retsult = strcat(letterpart, numpart)
Plus de réponses (2)
Walter Roberson
le 5 Déc 2013
Use sprintf instead of nu2str()
sprintf('%2d', 1)
3 commentaires
Simon
le 5 Déc 2013
Hi!
Please compare
sprintf('%2d\n',[1;11])
and
sprintf('%d\n',[1;11])
Walter Roberson
le 9 Déc 2013
numt = num(:).'; %make sure it is row vector
rem100 = mod(numt, 100);
lead2600 = mod((numt - rem100) ./ 100, 26) + 65;
longstr = sprintf('%c%2d\n', [lead2600; rem100]);
strs = regexp(longstr, '\n', 'split');
Jung-Woo
le 9 Déc 2013
1 commentaire
Walter Roberson
le 9 Déc 2013
You cannot use num2str() for this purpose. In situations in which every entry ends up with a leading blank, num2str() will strip off the leading blank.
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!