0

当您像这样使用 hist 函数时:

[h x] = hist(data, 1000)

只要数据长于一,就可以正常工作length(data) > 1

但如果是的= 1话,它会这样做:

在此处输入图像描述

数据在 -500 到 500 之间传播。有没有办法阻止它这样做?

4

2 回答 2

4

您使用的函数形式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 的答案)

于 2013-02-27T05:03:25.303 回答
0

您可以使用find函数或逻辑索引找到数据的范围,然后使用此处axis([xmin xmax ymin ymax])描述的属性

于 2013-02-27T03:54:57.327 回答