作者:桂。

时间: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:指定直方图区间个数。

给出代码:

  1. rng('default') % for reproducibility
  2. x = 3*randn(3000,1)-2;
  3. nbins = 50;
  4. hist(x, nbins);
  5. grid on;

  结果图:

  B-区间模式

numter:[start:interval:end].

给出代码:

  1. rng('default') % for reproducibility
  2. x = 3*randn(3000,1)-2;
  3. numter = [-20:.2:20];
  4. hist(x, numter);
  5. grid on;

  对应结果图:

此外,hist的输出结果有两个(三种方式均可):

  1. [histFreq, histXout]=hist(x);
  2. [histFreq, histXout]=hist(x, nbins);
  3. [histFreq, histXout]=hist(x, numter);

  给出一个演示代码:

  1. rng('default') % for reproducibility
  2. x = 3*randn(3000,1)-2;
  3. nbins = 50;
  4. [histFreq, histXout]=hist(x, nbins);
  5. subplot 311
  6. hist(x,nbins);grid on;
  7. subplot 312
  8. plot(histXout,histFreq,'r','linewidth',2);
  9. grid on;
  10.  
  11. subplot 313
  12. hist(x,nbins);hold on;
  13. plot(histXout,histFreq,'r','linewidth',2);
  14. grid on;

  对应结果图:

可以看到,对于结果:[histFreq, histXout] —>histXout:横坐标;histFreq:纵坐标。

二、栅栏图(bar)

关于bar,只提及一点,给出代码:

  1. x = 1900:10:2000;
  2. y = [75.995,91.972,105.711,123.203,131.669,...
  3. 150.697,179.323,203.212,226.505,249.633,281.422];
  4. figure;
  5. subplot 211
  6. bar(y);grid on;
  7. subplot 212
  8. bar(x,y);grid on;

  结果图:

即bar可以指定横轴坐标以及纵轴坐标。

三、归一化直方图

借助hist的输出,以及bar的特性,我们可以生成归一化直方图,思路:

  • 步骤一:求解每一个bin的区间宽度:binWidth = histXout(2)-histXout(1);
  • 步骤二:求解所有bin的面积:binWidth/sum(histFreq)
  • 步骤三:求解面积归一化后的高度(宽度保持不变):histFreq/binWidth/sum(histFreq)

直方图归一化的代码:

  1. rng('default') % for reproducibility
  2. x = 3*randn(3000,1)-2;
  3. numOfBins = 100;
  4. % [histFreq, histXout] = hist(x, numOfBins);
  5. numter = [-20:.2:20];
  6. [histFreq, histXout] = hist(x, numter);
  7. binWidth = histXout(2)-histXout(1);
  8. %Bar
  9. figure;
  10. subplot 311
  11. bar(histXout, histFreq/binWidth/sum(histFreq)); hold on;grid on;

  这样一来,我们对分布拟合,便可以更直观地观察直方图分布与拟合结果的关系:

MATLAB(5)——生成归一化直方图的更多相关文章

  1. matlab画二维直方图以及双y轴坐标如何修改另一边y轴的颜色

    1.首先讲一下如何用hist画二维直方图 x=[- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  2. VS2008 C++ 调用MATLAB 2009b 生成的DLL .

    转载: 刚开始学习用VC++调用matlab生成的DLL,找了网上一些资料,难以找到vs2008与MATLAB2009b版本的,按照以往版本做的总是有很多错误.经过两天努力,终于调试成功,这里将经验总 ...

  3. MATLAB - 练习程序,直方图均衡化

    直方图均衡化的作用是图像增强. 有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布. 第一个问题.均衡化过程中,必须要保证两个条件:①像素无论怎么映射, ...

  4. MATLAB 随机生成互不重叠的多个矩形

    建立m文件draw_rectangle.m. 其中p生成矩形的个数 function draw_rectangle(p) t = 1; x = rand(1)*10; y = rand(1)*10; ...

  5. MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示

    使用MATLAB 画柱状图 ,即bar (x,y),其横坐标是默认 1.2.3.4.……的 % --v1 y1=[asum1,asum2,asum3,asum4,asum5,asum6,asum7,a ...

  6. matlab中生成随机数的相关知识

    randperm()函数: 功能:用于生成从1到N的随机整数,并且没有重复,它本质上是一个随机排序的函数: 用法:1.  randperm(n)     随机生成从1到n的不重复的整数: 2. ran ...

  7. 【matlab】生成列是0-255渐变的图像

    图像大小:640×512 8位灰度图 %% 生成图像 %大小:* %类型:灰度图 %灰度值:列按照0-255渐变,故命名为column shade. clc,clear all,close all; ...

  8. 在matlab中生成m序列

    实验环境为matlab2013b 1.首先编写一个mseq.m文件,内容为: function[mseq]=m_sequence(fbconnection)  n=length(fbconnectio ...

  9. MATLAB/SIMULINK生成代码错误之change the default character encoding setting

    SIMULINK点击生成C代码报错 错误提示: Error encountered while executing PostCodeGenCommand for model 'RTW_sc3': Cl ...

随机推荐

  1. glyph

    glyph[英][glɪf][美][ɡlɪf]n.象形文字; 纵的沟纹; 竖沟; 浮雕;

  2. C# App.config配置文件的讲解

    App.config是C#开发WinForm程序的配置文件,开发Web程序的配置文件叫Web.config.本文介绍App.config的简介使用. 我们先来打开一个App.config文件,看看它的 ...

  3. 如何使用Ninja快速编译LLVM和Clang

    在使用Make工具编译LLVM是非常耗时的.往往需要三四个小时.但是使用goolge开源的ninja编译LLVM只需要10到20分钟. 本文以llvm3.3为例,演示在linux上编译和安装过程. 第 ...

  4. RIP 相对寻址

    知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/rip-relative-addressing 本博客 ...

  5. Dockerfile的书写规则及指令使用方法

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将读取Dockerfile,根据指令生成定制的ima ...

  6. DTLS 技术要点解析

    一.DTLS DTLS 是指 Datagram Transport Level Security,即数据报安全传输协议: 其提供了UDP 传输场景下的安全解决方案,能防止消息被窃听.篡改.身份冒充等问 ...

  7. js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式

    alert("A"); confirm("B");var name = confirm("B");if(name){ alert(" ...

  8. java实现简单的单点登录_转

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...

  9. 【.Net Framework 体积大?】不安装.net framework 也能运行!?开篇叙述-1

    [声明:请尊重作者micro-chen的原创,抓文章,请添加来源和作者署名.作者保留追责权利.......] 写在前言 看着日渐没落的.net ,心里多少有了点悲凉.国内的越来越多的新兴公司 都是JA ...

  10. 关于hibernate注解的简单应用

    @Override 用途:重写父类的同名方法 单元测试注解 @Test 用途:用于测试 @Before 用途:单测方法走之前执行 @After 用途:单测方法走之后执行 注解的目标:替换小配置.替换h ...