我正在尝试将变量放入绘图标题中,但我无法生成4位小数的格式。如何避免标题中的浮动格式?
这是我使用的代码
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})
答案 0 :(得分:2)
您需要使用%f
作为format specifier for float values。更改代码
Mean=sprintf('Mean=%0.4d',M)
到
Mean=sprintf('Mean=%0.4f',M)
将打印M
,精确度为4位小数。如果您想打印M
而没有任何小数位,那么您需要使用%.0f
Mean=sprintf('Mean=%.0f',M)
%.0f
会打印一个带有0位小数的double
或float
值,并显示为使用%d
打印整数。
如果您的变量X
具有N
个元素,而不是使用内置MATLAB函数mean()
将产生与sum(X) / N
相同的输出。
注意:您应该注意变量名称。 MATLAB包含一个mean()
函数,您不希望通过调用变量mean
来覆盖该函数。 MATLAB变量名称区分大小写,因此Mean
可以,但mean
不是。
答案 1 :(得分:1)
您可以使用num2str
功能。例如:
mean(y)
a=num2str(ans,5)
plot(x,y)
title(['sometext ' a])
5
参数中的 num2str
表示最大有效位数。而a
现在是string
。
顺便说一句,您可以使用mean
内置函数代替您的公式。