MATLAB(5)——生成归一化直方图
作者:桂。
时间:2017-03-10 22:13:36
链接:http://www.cnblogs.com/xingshansi/p/6533579.html
声明:欢迎转载,不过记得注明出处哦~

前言
|
本文作为:曲线拟合与分布拟合 一文的补充内容,主要介绍MATLAB直方图的绘制,以及对应归一化直方图的实现。全文分三部分简单介绍: 1)直方图(hist)绘制; 2)栅栏图(bar)绘制; 3)归一化直方图实现。 |
一、直方图(hist)
可以对hist的直方图进行限定,两种途径:个数模式(nbins)/区间模式(numter)
A-个数模式
nbins:指定直方图区间个数。
给出代码:
rng('default') % for reproducibility
x = 3*randn(3000,1)-2;
nbins = 50;
hist(x, nbins);
grid on;
结果图:

B-区间模式
numter:[start:interval:end].
给出代码:
rng('default') % for reproducibility
x = 3*randn(3000,1)-2;
numter = [-20:.2:20];
hist(x, numter);
grid on;
对应结果图:

此外,hist的输出结果有两个(三种方式均可):
[histFreq, histXout]=hist(x);
[histFreq, histXout]=hist(x, nbins);
[histFreq, histXout]=hist(x, numter);
给出一个演示代码:
rng('default') % for reproducibility
x = 3*randn(3000,1)-2;
nbins = 50;
[histFreq, histXout]=hist(x, nbins);
subplot 311
hist(x,nbins);grid on;
subplot 312
plot(histXout,histFreq,'r','linewidth',2);
grid on;
subplot 313
hist(x,nbins);hold on;
plot(histXout,histFreq,'r','linewidth',2);
grid on;
对应结果图:

可以看到,对于结果:[histFreq, histXout] —>histXout:横坐标;histFreq:纵坐标。
二、栅栏图(bar)
关于bar,只提及一点,给出代码:
x = 1900:10:2000;
y = [75.995,91.972,105.711,123.203,131.669,...
150.697,179.323,203.212,226.505,249.633,281.422];
figure;
subplot 211
bar(y);grid on;
subplot 212
bar(x,y);grid on;
结果图:

即bar可以指定横轴坐标以及纵轴坐标。
三、归一化直方图
借助hist的输出,以及bar的特性,我们可以生成归一化直方图,思路:
- 步骤一:求解每一个bin的区间宽度:binWidth = histXout(2)-histXout(1);
- 步骤二:求解所有bin的面积:binWidth/sum(histFreq)
- 步骤三:求解面积归一化后的高度(宽度保持不变):histFreq/binWidth/sum(histFreq)
直方图归一化的代码:
rng('default') % for reproducibility
x = 3*randn(3000,1)-2;
numOfBins = 100;
% [histFreq, histXout] = hist(x, numOfBins);
numter = [-20:.2:20];
[histFreq, histXout] = hist(x, numter);
binWidth = histXout(2)-histXout(1);
%Bar
figure;
subplot 311
bar(histXout, histFreq/binWidth/sum(histFreq)); hold on;grid on;
这样一来,我们对分布拟合,便可以更直观地观察直方图分布与拟合结果的关系:

MATLAB(5)——生成归一化直方图的更多相关文章
- matlab画二维直方图以及双y轴坐标如何修改另一边y轴的颜色
1.首先讲一下如何用hist画二维直方图 x=[- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...
- VS2008 C++ 调用MATLAB 2009b 生成的DLL .
转载: 刚开始学习用VC++调用matlab生成的DLL,找了网上一些资料,难以找到vs2008与MATLAB2009b版本的,按照以往版本做的总是有很多错误.经过两天努力,终于调试成功,这里将经验总 ...
- MATLAB - 练习程序,直方图均衡化
直方图均衡化的作用是图像增强. 有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布. 第一个问题.均衡化过程中,必须要保证两个条件:①像素无论怎么映射, ...
- MATLAB 随机生成互不重叠的多个矩形
建立m文件draw_rectangle.m. 其中p生成矩形的个数 function draw_rectangle(p) t = 1; x = rand(1)*10; y = rand(1)*10; ...
- MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示
使用MATLAB 画柱状图 ,即bar (x,y),其横坐标是默认 1.2.3.4.……的 % --v1 y1=[asum1,asum2,asum3,asum4,asum5,asum6,asum7,a ...
- matlab中生成随机数的相关知识
randperm()函数: 功能:用于生成从1到N的随机整数,并且没有重复,它本质上是一个随机排序的函数: 用法:1. randperm(n) 随机生成从1到n的不重复的整数: 2. ran ...
- 【matlab】生成列是0-255渐变的图像
图像大小:640×512 8位灰度图 %% 生成图像 %大小:* %类型:灰度图 %灰度值:列按照0-255渐变,故命名为column shade. clc,clear all,close all; ...
- 在matlab中生成m序列
实验环境为matlab2013b 1.首先编写一个mseq.m文件,内容为: function[mseq]=m_sequence(fbconnection) n=length(fbconnectio ...
- MATLAB/SIMULINK生成代码错误之change the default character encoding setting
SIMULINK点击生成C代码报错 错误提示: Error encountered while executing PostCodeGenCommand for model 'RTW_sc3': Cl ...
随机推荐
- fork() && fork() || fork()
http://blog.csdn.net/hs794502825/article/details/10242091 #include <unistd.h> #include <std ...
- jquery图片放大镜和遮罩层效果
图片放大镜效果将借助于jqzoom插件,遮罩层借助于thickbox插件. 1.引入样式表 /*整体样式*/ <link rel="stylesheet" href=&quo ...
- sublime 3 build结果关闭打开
Tools > Build Results > Show Build Results
- IOS拒绝Adobe的六大理由
苹果与Adobe的关系由来已久.事实上,Adobe的创始人还在他们众所周知的小车库里时,我们就碰过面了.苹果是他们的第一个大客户.我们将他们的Postscript语言应用于当时最新的Laserwrit ...
- 在windows下运行spark
1.下载spark:spark-2.0.0-bin-hadoop2.7.tgz 2.解压至D:\bigdata\spark-2.0.0-bin-hadoop2.7 3.配置环境变量 HADOOP_HO ...
- KB奇遇记(2):缘起
最早听到这家公司的名字,大概还是在好几年前. 正是2012年,之前的在一起灿坤待过的同事LY在这家公司当高层,正好公司规模大了,要上ERP项目.苦于公司没有这方面的人才,而内部IT又太差劲支撑不起来. ...
- [笔记]A Practical Guide to Support Vector Classication
<A Practical Guide to Support Vector Classication>是一篇libSVM使用入门教程以及一些实用技巧. 1. Basic Kernels: ( ...
- python之twisted模块安装
Twisted是一个事件驱动的网络框架. 最近开始学习了解Twisted,首先肯定要安装twisted模块. 但是在cmd下执行:pip install twisted 出现了下面的问题:" ...
- 地图学与GIS制图的基础理论(一)
说到地图制作,很多人第一时间就会跟地图学进行挂钩.是的,地图学的很多理论和知道思想都非常适合基于GIS制图.可以说,利用GIS进行电子地图制作,其实也属于地图学的一小部分. 地图学是研究地图的理论.地 ...
- Eclipse运行时无法加载主类的解决方法
测试代码: package javastudy; class Person { public static void main(String[] args) { PersonCeshi pp=new ...