using fprintf to print same length values
显示 更早的评论
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
回答(2 个)
Azzi Abdelmalek
2013-12-30
编辑:Azzi Abdelmalek
2013-12-30
b=360.000305
m=9 % fixed length
out=sprintf('%9.9f',b)
ii=numel(strfind(out,'.'))
out=out(1:m+ii)
8 个评论
Image Analyst
2013-12-30
What is a?
Image Analyst
2013-12-30
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
2013-12-30
Azzi Abdelmalek
2013-12-30
Ronaldo, Analyst has corrected the answer, in my answer a should be out. Look at edited answer
Ronaldo
2013-12-30
编辑:Azzi Abdelmalek
2013-12-30
Azzi Abdelmalek
2013-12-30
This works fine, what is the problem?
Ronaldo
2013-12-31
Azzi Abdelmalek
2013-12-31
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)
类别
在 帮助中心 和 File Exchange 中查找有关 Get Started with MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!