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

57 vues (au cours des 30 derniers jours)
MOHAMED
MOHAMED le 21 Avr 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 commentaire
Jan
Jan le 21 Avr 2013
In a mathematical sense, "a + -b" is meaningful and well-defined.

Connectez-vous pour commenter.

Réponse acceptée

Daniel Shub
Daniel Shub le 21 Avr 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 commentaires
Jan
Jan le 21 Avr 2013
+1: This is exactly the job the %+d format has been created for.
MOHAMED
MOHAMED le 21 Avr 2013
Appreciate your help,
Thanks.

Connectez-vous pour commenter.

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 21 Avr 2013
Modifié(e) : Azzi Abdelmalek le 21 Avr 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 commentaire
Jan
Jan le 21 Avr 2013
For simple jobs, STRREP is much faster than REGEXPREP.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by