# what is wrong with fprintf

1 view (last 30 days)
Tor Fredrik Hove on 19 Oct 2011
why does not this function give the full text in fprintf:
function printem(a,b)
fprintf('the first number is %.lf and the second is %.lf\n',a,b)
end
what is displayed in matlab is
>> printem(3,5) the first number is>>

Andrei Bobrov on 19 Oct 2011
>> a=rand(4,1)
a =
0.67874
0.75774
0.74313
0.39223
>> b = randi(9,4,1)
b =
6
2
7
1
>> fprintf('the first number is %f and the second is %f\n',[a,b]')
the first number is 0.678735 and the second is 6.000000
the first number is 0.757740 and the second is 2.000000
the first number is 0.743132 and the second is 7.000000
the first number is 0.392227 and the second is 1.000000
>>
more
>> printem = @(a,b)fprintf('the first number is %.1f and the second is %.1f\n',[a,b]')
>> printem(3,5)
the first number is 3.0 and the second is 5.0
>>

Walter Roberson on 19 Oct 2011
You appear to have used %.lf (lower-case L) instead of %.1f (digit one)

Harry MacDowel on 19 Oct 2011
Try this
fprintf('the first number is %0.1f and the second is %0.1f\n',a,b)