Matlab - 图标题中的数字变量的短格式

时间:2015-10-14 00:54:57

标签: matlab plot matlab-figure number-formatting

我正在尝试将变量放入绘图标题中,但我无法生成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})

2 个答案:

答案 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位小数的doublefloat值,并显示为使用%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内置函数代替您的公式。