Why is data cursor showing incorrectly approximated value in bar plot in MATLAB?
2 views (last 30 days)
Show older comments
Thanigaivel Raja T
on 19 Oct 2016
Commented: Walter Roberson
on 20 Oct 2016
Below is the code:
Lw=[98.5321 98.5321 100.5321 92.5321 88.5321 81.5321 77.5321 75.5321];
bar(Lw)
Upon executing it I get a bar plot figure, which I have attached herewith. Upon using data cursor to point to the values, I see values approximated to one decimal as given below:
Lw=[98.5 98.5 101 92.5 88.5 81.5 77.5 75.5];
Observe that Lw(3) is specially displayed with incorrect approximation i.e 101 rather than 100.5(See the file attached). Why does this happen? Also, how to have data cursor to show values upto three decimals?
2 Comments
Walter Roberson
on 19 Oct 2016
Which MATLAB release are you using, and which operating system?
When I test just now R2016b on OS-X, I get the 100.5
Accepted Answer
Walter Roberson
on 19 Oct 2016
It is a matter of the number of characters. The display ends in 0.5 as expected on the values that are less than 100, where there is more room for characters. All of the items over 100 get rounded to not have the decimal point.
(Tested on R2012b on Windows 10)
2 Comments
Walter Roberson
on 20 Oct 2016
Have a look at datacursormode() which allows you to add a custom update function that can return any text.
101 showing up for 100.5321 is not actually wrong, it is rounding that goes on all the time. For example 100.5321 is itself rounded and in MATLAB would be represented as 100.5320999999999997953636921010911464691162109375 and I don't think you want all of that showing up (and if you do, get the File Exchange Contribution num2strexact(
See Also
Categories
Find more on Environment and Settings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!