MATLAB Answers

# How can I get fprintf to show plus sign in front of positive numbers ?

129 views (last 30 days)
MOHAMED on 21 Apr 2013
Hi everyone, How can I get fprintf to show number with its positive sign ?
It shows only negative signs when the number is negative,
Here is the command line that I used:
fprintf('%4.2f + %4.2fX1 + %4.2fX2 + %4.2fX1^2 + %4.2fX1X2 + %4.2fX2^2 \n \n',a1 ,a2 ,a3 ,a4 ,a5 ,a6)
And here is what I got:
15.10 + 5.67X1 + -2.78X2 + 0.71X1^2 + -0.03X1X2 + -0.76X2^2
as you see, I got "+ - number" which is not meaningful.
Looking for your help.
Regards,
Mohamed Selim

#### 1 Comment

Jan on 21 Apr 2013
In a mathematical sense, "a + -b" is meaningful and well-defined.

Sign in to comment.

### Accepted Answer

Daniel Shub on 21 Apr 2013
So close ... You want %+4.2f
fprintf('%+4.2f%+4.2fX1%+4.2fX2%+4.2fX1^2%+4.2fX1X2%+4.2fX2^2\n\n',a1 ,a2 ,a3 ,a4 ,a5 ,a6)

#### 2 Comments

Jan on 21 Apr 2013
+1: This is exactly the job the %+d format has been created for.
MOHAMED on 21 Apr 2013
Appreciate your help,
Thanks.

Sign in to comment.

### More Answers (1)

Azzi Abdelmalek on 21 Apr 2013
Edited: Azzi Abdelmalek on 21 Apr 2013
s=sprintf('%4.2f + %4.2fX1 + %4.2fX2 + %4.2fX1^2 + %4.2fX1X2 + %4.2fX2^2 \n \n',a1 ,a2 ,a3 ,a4 ,a5 ,a6)
regexprep(s,'+ -','-')

#### 1 Comment

Jan on 21 Apr 2013
For simple jobs, STRREP is much faster than REGEXPREP.

Sign in to comment.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!