2017-03-07 47 views
2

我使用两个脚本创建直方图,一个是matlabs自己的hist函数,另一个是我下载的脚本。我下载的脚本获取绝对最小值和最大值,并在它们之间生成一个直方图。但问题是,与MATLAB不同,此直方图不显示。我提出了一个载体。如何创建直方图的直方图?

现在为了比较这两个视觉我使用plot,但由于某种原因,规模的变化。对于使用例如直方图MATLAB的hist如下图所示:

enter image description here

如果我在plot显示此柱状图中,x轴的比例变化:

enter image description here

我怎样才能保持比例相同?

我需要这个,因为下载的脚本不会生成直方图,所以要显示它我使用plot。再次情节是介于0和100之间,我觉得这可能不是一个准确的比较

+2

哪个版本的MATLAB是这样的?通常情况下,您可以使用'hist'(仓中心)的输出之一作为第二个曲线图的'x'值,而不是使用'plot(counts)'绘图... –

+0

我正在使用Matlab 2016a – StuckInPhD

+0

The脚本应该告诉你bin边缘,或者更好的是它用来建立直方图的bin中心。它是否这样做? –

回答

4

看来,你没有使用所有可用的信息在您的处置。请参阅下面的代码示例你想怎么可以做什么:

  • histogram,密谋使用时(:

    %% Generate some data: 
    rng(42653042); 
    data = randn(300); data = (data-min(data(:)))*90+100; 
    data(1:4:end) = data(1:4:end)/2; 
    %% Plot using hist: 
    figure(); hist(data(:),100); 
    %% Return bin info using hist: 
    [N,X] = hist(data(:),100); 
    %% Plot the other function's output w/o X: 
    figure(); plot(N); 
    %% Plot the other function's output w/ X: 
    figure(); plot(X,N); 
    figure(); bar(X,N); 
    

    功能hist应在MATLAB的较新版本被替换即hist没有输出的情况)。

  • histcounts用于计数时(即带输出的hist的情况)。
+0

谢谢,我不知道第二个输出。这修复了matlab输出。但我不能再比较,因为我使用的脚本(上面添加)不提供这样的第二个输出,并且当它被绘制时,我再次得到0到100之间的图。 – StuckInPhD

+0

@StuckInPhD您不需要第二个脚本输出其他东西。它只给你计数('N')...和你应该已经从你自己的'hist'中得到的位置('X')... –

+0

Thanks @ Dev-il。我需要第二个脚本来生成一个固定的最小值和最大值之间的直方图,Matlab doies没有这个,每个直方图都适合它自己的最小值和最大值。两者的形状和输出也非常不同。出于分类的目的,所有的直方图必须在固定比例之间,比如-50到250之间。我无法找到matlab的“hist”的设置 – StuckInPhD

3

使用“n = hist(Y,x)其中x是一个向量,返回长度为(x)的中心的分布,中心用x”指定中心,以指定垃圾桶中心。