using fprintf to print same length values
Mostrar comentarios más antiguos
How can I use fprintf to print values with the same length (the number of digits after the pointer is changing based on the number of digits before the pointer)?
0.00000000
30.0000248
360.000305
Respuestas (2)
Azzi Abdelmalek
el 30 de Dic. de 2013
Editada: Azzi Abdelmalek
el 30 de Dic. de 2013
b=360.000305
m=9 % fixed length
out=sprintf('%9.9f',b)
ii=numel(strfind(out,'.'))
out=out(1:m+ii)
8 comentarios
Image Analyst
el 30 de Dic. de 2013
What is a?
Image Analyst
el 30 de Dic. de 2013
Never mind. I figured it out and corrected it:
b=[0.00000000
30.0000248
360.000305
12345.678]
m=9; % fixed length
for k = 1 : length(b)
out=sprintf('%9.9f',b(k));
ii=numel(strfind(out,'.'));
out=out(1:m+ii);
fprintf('%s\n', out);
end
Nice clever solution.
Ronaldo
el 30 de Dic. de 2013
Azzi Abdelmalek
el 30 de Dic. de 2013
Ronaldo, Analyst has corrected the answer, in my answer a should be out. Look at edited answer
Ronaldo
el 30 de Dic. de 2013
Editada: Azzi Abdelmalek
el 30 de Dic. de 2013
Azzi Abdelmalek
el 30 de Dic. de 2013
This works fine, what is the problem?
Ronaldo
el 31 de Dic. de 2013
Azzi Abdelmalek
el 31 de Dic. de 2013
Ronaldo, I am not adding anything.
b=360.000305
m=9 % fixed length
out=sprintf('%9.9f',b)
ii=numel(strfind(out,'.'))
out=out(1:m+ii)
% Azzi's got no time for correctness
fprintf('%s\n', out)
Categorías
Más información sobre Get Started with MATLAB en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!