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

Matlab - short format of number variable in the plot title

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

您需要使用 %f 作为 format specifier for float values。更改代码

Mean=sprintf('Mean=%0.4d',M)

Mean=sprintf('Mean=%0.4f',M)

将以小数点后 4 位的精度打印 M。如果你想打印 M 没有任何小数位那么你需要使用 %.0f

Mean=sprintf('Mean=%.0f',M)

%.0f 将打印一个带 0 个小数位的 doublefloat 值,看起来就像您用 %d.

打印整数一样

如果您的变量 X 具有 N 个元素,那么使用内置 MATLAB 函数 mean() 将产生与 sum(X) / N.

相同的输出

注意:你应该小心你的变量名。 MATLAB 包含一个 mean() 函数,您不想通过调用变量 mean 来覆盖它。 MATLAB 变量名称区分大小写,因此 Mean 可以,但 mean 不行。

您可以使用num2str功能。例如:

mean(y)
a=num2str(ans,5)
plot(x,y)
title(['sometext ' a])

5 in num2str 参数显示最大有效数字位数。 a 现在是 string。 顺便说一下,您可以使用 mean 内置函数代替您的公式。