Removing the zero that precedes the decimal point

17 ビュー (過去 30 日間)
z8080
z8080 2017 年 3 月 9 日
回答済み: Jeff Miller 2018 年 4 月 10 日
I would like to have numbers between 0 and 1 be displayed such as .64 instead of 0.64, i.e. omitting the initial zero.
Since the total number of chars including the decimal point would then be 3, with 2 decimals, I tried
num2str(a,'%3.2f')
as well as
sprintf('%3.2f',a)
(as well as several variations for each), but unexpectedly, they both leave the leading zero before the decimal.
What is the correct formatting tag? Thanks!

回答 (3 件)

Thorsten
Thorsten 2017 年 3 月 9 日
strrep(num2str(a), '0.', '.')
  3 件のコメント
Thorsten
Thorsten 2017 年 3 月 10 日
Sorry, I don't know.
Stephen23
Stephen23 2017 年 3 月 10 日
"Is there also a way to do it with the formatting that I was mentioning?"
No.

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


Dave
Dave 2018 年 2 月 1 日
strrep(sprintf('%3.2f',a),'0.','.')

Jeff Miller
Jeff Miller 2018 年 4 月 10 日
Here is a little follow-up in case anyone else has this problem...
I had the same problem as z8080, and I wanted to solve it with a format statement that I could pass to xtickformat or ytickformat. My solution is ugly, but it works:
num2str(100*a,'.%02d')
where the values of 'a' are in the 0--1 range. Or, in my case:
plot(x,100*y,'-V')
ytickformat('.%02d')

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by