Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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_Matlab Figure_Matlab Hg2 - Fatal编程技术网

Matlab 根据计数向量绘制直方图

Matlab 根据计数向量绘制直方图,matlab,matlab-figure,matlab-hg2,Matlab,Matlab Figure,Matlab Hg2,如果我有一个直方图边缘和箱数的向量,是否可以使用它直接生成直方图图 例如,给定的数据向量 edges = 0:10; % histogram edges for 9 bins counts = round(normpdf(edges(1:end-1), 5, 2) * 1000) % Generate bin counts counts = 9 27 65 121 176 199 176 121 65 27 我总是可以根据需要人工生成数

如果我有一个直方图边缘和箱数的向量,是否可以使用它直接生成直方图图

例如,给定的数据向量

edges = 0:10; % histogram edges for 9 bins
counts = round(normpdf(edges(1:end-1), 5, 2) * 1000) % Generate bin counts

counts =

     9    27    65   121   176   199   176   121    65    27
我总是可以根据需要人工生成数据

data = [];
for i = 1:numel(counts)
  % This should be optimised by pre-allocating the data array,
  % but this is only provided as an example.
  data = [data (ones(1, counts(i)) * mean(edges(i:i+1)))];
end
因此,
numel(数据)==sum(计数)
然后我可以使用
直方图(数据,边)
绘制直方图:

但是,我希望这样做,而不必执行生成人工数据的中间步骤,因为这看起来相当复杂

我知道我可以使用
条形图
功能,但我更喜欢使用
直方图
,因为我更喜欢它的绘图方式和提供的功能


编辑:我正在使用MATLAB R2015a/R2015b,尽管我希望尽可能保持与R2015a的向后兼容性(我知道R2015b中的
直方图
有相当大的更改)。

我认为您无法避免将实际数据提供给
直方图
对象。
直方图
对象的功能包括能够在事件发生后更改箱子/边缘,因此它需要知道其源数据。

为什么不喜欢条形图?直方图计算计数,然后调用bar…@AnderBiguri,你确定吗<代码>条形图返回条形图对象,
直方图
返回两个基本体的对象。直方图对象具有良好的属性,例如
FaceAlpha
,这些属性在
bar
中不可用。也许
hist
曾在内部使用
bar
,但我相当确定
直方图
(在R2014b中引入)从头开始重新实现了该功能。我会使用补丁来实现这一点。我从字面上看不出您的绘图与此绘图之间有什么区别:在对数据集使用bar函数时:new_edges=(edges(1:10)+0.5)条(新边,计数,1)但如果你坚持使用直方图,我真的不知道:)不幸的是,我认为这是正确的答案:(