How can I transform a number to string with space using num2str?
64 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jung-Woo
el 5 de Dic. de 2013
Comentada: Jung-Woo
el 9 de Dic. de 2013
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 comentarios
Respuesta aceptada
Simon
el 9 de Dic. de 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)
Más respuestas (2)
Walter Roberson
el 5 de Dic. de 2013
Use sprintf instead of nu2str()
sprintf('%2d', 1)
3 comentarios
Simon
el 5 de Dic. de 2013
Hi!
Please compare
sprintf('%2d\n',[1;11])
and
sprintf('%d\n',[1;11])
Walter Roberson
el 9 de Dic. de 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
el 9 de Dic. de 2013
1 comentario
Walter Roberson
el 9 de Dic. de 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.
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!