问题
I am trying to place a variable into a plot title but I cannot produce formatting of 4 decimal places. How to avoid the float format in the title?
This is the code I use
subplot(3,2,1);
hist(X,10);
str=sprintf('X N=%d,Y=%d',N,Y)
M=sum(X)/N
Mean=sprintf('Mean=%0.4d',M)
title({str,Mean})
回答1:
You need to use %f as the format specifier for float values. Changing your code
Mean=sprintf('Mean=%0.4d',M)
to
Mean=sprintf('Mean=%0.4f',M)
will print M with 4 decimal places of accuracy. If you want to print M without any decimal places then you need to use %.0f
Mean=sprintf('Mean=%.0f',M)
%.0f will print a double or float value with 0 decimal places and appear as if you printed an integer with %d.
If your variable X has N elements than using the builtin MATLAB function mean() will produce the same output as sum(X) / N.
Note: You should be careful of your variable names. MATLAB includes a mean() function which you don't want to overwrite by calling a variable mean. MATLAB variable names are case-sensitive so Mean is ok but mean isn't.
回答2:
You can use num2str function. For example:
mean(y)
a=num2str(ans,5)
plot(x,y)
title(['sometext ' a])
5 in num2str parameters shows maximum number of significant digits. And a is now a string.
By the way you can use mean build-in function instead your formula.
来源:https://stackoverflow.com/questions/33114938/matlab-short-format-of-number-variable-in-the-plot-title