如何用matlab画直方图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matlab画直方图相关的知识,希望对你有一定的参考价值。

已知频数和组距

matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法:

调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素为横纵坐标绘制,选项是一些绘图控制选项,可选;

例如,绘制y=2exp(-0.5x)的条形图

bar3(x,y)或者bar3(y),前者在x指定的位置上绘制y中元素的条形图,后者y的每一个元素对应于一个条形。

参考技术A

楼下答案画的没问题啊,评论为什么说是条形图不是直方图???会画条形图了还不会直方图吗。。。。画法都一样。。。hist()函数只是matlab的库函数罢了。。。大家自己体会一下。。总之,直接说怎么画吧

提问的兄弟说已知频数和组距。频数1个矩阵,组距1个矩阵。注意频数和组距的矩阵维度一样。

例如 

x = 1:1:5;     % x =[1,2,3,4,5]  这是组距1,和起始终止点

y = [0.1,0.2,0.3,0.4,0.5];      % 每个点的频数

bar(x,y) ;

完事。。至于bar的一些别的参数,查阅说明书   

如何用matlab做图片的灰度直方图

在matlab中对图片制作灰度直方图

参考技术A 或者在 matlab下边输入 help imhist
edit histeq

%%%灰度图象的直方图数据%%%
clc
clear
fn='rice.tif';
I=imread (fn);
J=I;
%计算灰度图象的直方图数据
L=256; %灰度级
Ps = zeros(L,1); %统计直方图结果数据
nk=zeros(L,1);
[row,col]=size(I);
n=row*col; %总像素个数
for i = 1:row
for j = 1:col
num = double(I(i,j))+1; %获取像素点灰度级
nk(num) = nk(num)+1; %统计nk
end
end
%计算直方图概率估计
for i=1:L
Ps(i)=nk(i)/n;
end
figure;
subplot(3,1,1);imshow(J),title('原图');
subplot(3,1,2),plot(nk),title('直方图(nk)');
subplot(3,1,3),plot(Ps),title('直方图(Ps)');

%figure(4),imhist(hist);
%p=imhist(hist); %生成直方图函数,返回灰度图象直方图数据
%figure(5),plot(p);

以上是关于如何用matlab画直方图的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab做图片的灰度直方图

如何用matlab作正态分布的检验?

如何用Excel画直方图

matlab如何画直方图

用matlab画直方图!急!

matlab如何画直方图