Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 具有对数箱和归一化的直方图_Matlab_Histogram_Normalize_Bins - Fatal编程技术网

Matlab 具有对数箱和归一化的直方图

Matlab 具有对数箱和归一化的直方图,matlab,histogram,normalize,bins,Matlab,Histogram,Normalize,Bins,我想对矩阵的每一列做一个柱状图,但我希望这些箱子是对数的,并且也是标准化的。在我创建柱状图之后,我想在不显示条形图的情况下对其进行拟合。这就是我尝试过的: y=histogram(x,'Normalized','probability'); 这让我得到了标准化的直方图,但我不知道如何使箱子对数化。我认为正确的语法应该是标准化。 要使其成为对数,必须更改Axis对象。 例如: ha = axes; y = histogram( x,'Normalization','probability' );

我想对矩阵的每一列做一个柱状图,但我希望这些箱子是对数的,并且也是标准化的。在我创建柱状图之后,我想在不显示条形图的情况下对其进行拟合。这就是我尝试过的:

y=histogram(x,'Normalized','probability');

这让我得到了标准化的直方图,但我不知道如何使箱子对数化。

我认为正确的语法应该是标准化。 要使其成为对数,必须更改Axis对象。 例如:

ha = axes;
y = histogram( x,'Normalization','probability' );
ha.YScale = 'log';

我认为正确的语法应该是规范化。 要使其成为对数,必须更改Axis对象。 例如:

ha = axes;
y = histogram( x,'Normalization','probability' );
ha.YScale = 'log';

创建对数直方图有两种不同的方法:

计算数据对数的直方图。这可能是最好的方法,因为您可以让软件决定要创建多少存储箱等。x轴现在与您的数据不匹配,它与您的数据日志匹配。对于拟合函数而言,这可能是有益的,但对于显示而言,这可能会令人困惑。在这里,我更改记号标签以显示实际值,使记号本身保持其原始值:

y=历史图,标准化,概率; h=gca; h、 XTickLabels=exph.XTick; 以对数比例确定您自己的箱子边缘。在这里,您需要根据样本数量和样本分布确定需要多少垃圾箱

b=2。^1:0.25:3; y=组织图mx,b,'Normalization','probability'; setgca,'XTick',b%这只是在条之间加上记号,这样你就可以看到我们做了什么。 方法1允许MATLAB根据输入数据自动确定箱子数量和箱子边缘。因此,它不适合创建多个匹配直方图。对于这种情况,请使用方法2。可以通过以下方式更简单地获得内边缘:

N=10;%垃圾箱数量 开始=最小值;%第一箱边 停止=最大值;%最后一箱边 b=2。^linspacelog2start,log2stop,N+1;
创建对数直方图有两种不同的方法:

计算数据对数的直方图。这可能是最好的方法,因为您可以让软件决定要创建多少存储箱等。x轴现在与您的数据不匹配,它与您的数据日志匹配。对于拟合函数而言,这可能是有益的,但对于显示而言,这可能会令人困惑。在这里,我更改记号标签以显示实际值,使记号本身保持其原始值:

y=历史图,标准化,概率; h=gca; h、 XTickLabels=exph.XTick; 以对数比例确定您自己的箱子边缘。在这里,您需要根据样本数量和样本分布确定需要多少垃圾箱

b=2。^1:0.25:3; y=组织图mx,b,'Normalization','probability'; setgca,'XTick',b%这只是在条之间加上记号,这样你就可以看到我们做了什么。 方法1允许MATLAB根据输入数据自动确定箱子数量和箱子边缘。因此,它不适合创建多个匹配直方图。对于这种情况,请使用方法2。可以通过以下方式更简单地获得内边缘:

N=10;%垃圾箱数量 开始=最小值;%第一箱边 停止=最大值;%最后一箱边 b=2。^linspacelog2start,log2stop,N+1;
histogram有一个可选的输入参数来指定bin边。创建一组对数的箱子边,您就完成了。@cris您能写出准确的语法吗?直方图有一个可选的输入参数来指定箱子边。创建一组对数的bin边,您就完成了。@cris您能写出准确的语法吗?ha.Yscale会使y轴对数正确吗?在我的例子中,我必须把它改成ha.Xscale?如果你想让X轴是对数的,是的。ha.Yscale会让y轴是对数的,对吗?所以我必须把它改成ha.Xscale?如果你想让X轴是对数的话,是的。如果我还想在这个柱状图的顶部加上另一个柱状图,它将是同一矩阵的另一列,我怎么能让binwidth保持相同?@nikos:使用方法2,你可以对两个柱状图使用相同的b。b确定箱子的边缘,从而确定箱子的宽度。如果我想使用第一种方法?因为我真的无法理解第二个是否有效如果我还想在这个柱状图的顶部添加另一个柱状图,它将只是同一矩阵的另一列,我怎么能保持binwidth相同?@nikos:使用方法2,你可以对两个柱状图使用相同的b。b确定箱子的边缘,从而确定箱子的宽度。如果我想使用第一种方法?因为我真的无法理解第二种方法是否有效