如何在Matlab中减小直方图条形的宽度

3
到目前为止,我有这个;
Disp_X = X - mean(X);
hist(Disp_X);
h = hist(Disp_X); 

h.BinWidth = 0.001; 

之前我的h.BinWidth可以使得柱状图更窄,但现在我遇到了这个错误信息:

"Field assignment to a non-structure array object."

我不太明白为什么之前没有出现这个问题,而现在却出现了。

同时,我也在尝试将两个直方图绘制在同一张图上,但遇到了一些问题。我有两组距离均值的频率数据,分别对应x轴和y轴,希望它们能够绘制在同一张图上。

3个回答

4

你需要的命令是histogram而不是histhist是旧版本的直方图,用于绘制输出结果。该函数的输出结果是每个区间的计数和中心点。而histogram的输出结果是一个直方图对象。

X = rand(1000,1);
Disp_X = X - mean(X);
h = histogram(Disp_X);
h.BinWidth = 0.001;

然后添加另一个直方图。
hold on
Y = rand(1000,1);
Dy = Y - mean(Y);
h2 = histogram(Dy);

2

其他两个回答都是正确的,但最简单的选项是在调用函数时设置此属性:

histogram(Disp_X,'BinWidth',0.001)

2
如果你使用的是R2014b或更高版本,则Matt的回答是正确的,因为此版本引入了“histogram”。如果你使用的是旧版本,则无法使用点符号表示法,必须使用“set”:
Disp_X = X - mean(X);
hist(Disp_X);
h = hist(Disp_X); 

set(h, 'BinWidth', 0.001); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接