如何用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 imhistedit 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画直方图的主要内容,如果未能解决你的问题,请参考以下文章