当您像这样使用 hist 函数时:
[h x] = hist(data, 1000)
只要数据长于一,就可以正常工作length(data) > 1
。
但如果是的= 1
话,它会这样做:
数据在 -500 到 500 之间传播。有没有办法阻止它这样做?
您使用的函数形式hist(data,1000)
(一个有意义的范围)。这是文档中的简介:
n = hist(Y,nbins) 其中 nbins 是一个标量,使用 nbins 个 bin。
有一些选项可以使它“更好”(用引号括起来,因为除了你之外没有人知道你想要什么):
1)您可以使用不同形式的函数来指定垃圾箱的位置:
n = hist(Y,x) 其中 x 是一个向量,返回 Y 在长度 (x) 个 bin 中的分布,其中中心由 x 指定。例如,如果 x 是一个 5 元素向量,则 hist 将 Y 的元素分布到以 x 轴为中心在 x 中的元素处的五个 bin 中,其中没有一个可以是复数。注意:如果指定 bin 边缘而不是中心更自然,请使用 histc。
2)如果小于某个最小值,您可以将箱数限制为数据向量中的元素数:
hist(data, min(1000, numel(data)))
3)您可以检查特殊情况(例如 N = 1)-您提到这是不可取的,但是使用脚本/函数这根本不是困难,因此您可能必须澄清为什么这是不可接受的.
4)您可以在绘图后适当地缩放 x 轴(类似于@Parag 的答案)