MATLAB Answers

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

159 ビュー (過去 30 日間)
MOHAMED
MOHAMED 2013 年 4 月 21 日
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 件のコメント

Jan
Jan 2013 年 4 月 21 日
In a mathematical sense, "a + -b" is meaningful and well-defined.

サインインしてコメントする。

採用された回答

Daniel Shub
Daniel Shub 2013 年 4 月 21 日
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 件のコメント

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

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 4 月 21 日
編集済み: Azzi Abdelmalek 2013 年 4 月 21 日
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 件のコメント

Jan
Jan 2013 年 4 月 21 日
For simple jobs, STRREP is much faster than REGEXPREP.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by