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;

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

时间: 2024-08-05 11:09:57

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

matlab随机生成n个单位方向

用matlab随机生成n个单位方向: n=10; K2=2*n; D = randn(n, K2);% 生成符合标准正态分布的n行,K2列矩阵 D = D*diag(1./sqrt(sum(D.*D)))% 将矩阵每一列单位化 原文地址:https://www.cnblogs.com/nuansexiaozhu/p/12143488.html

使用 matlab 数字图像处理(一)—— 归一化直方图

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net I = imread('pout.tif'); % matlab 自带图像 [cnts, x] = imhist(I, 32); [m, n] = size(I); prob = cnts / m / n; % sum(prob) == 1 stem(x, prob) 1 2 3 4 5 6 图像的灰度直方图关于图像提供了丰富的信息

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

1.首先讲一下如何用hist画二维直方图 1 x=[-568179 -766698 -935586 -826865 -393971 -771826 -1529945 -1910695 -1694740 -926367 -306998 -844840 -1828334 -2062815 -2297296 -1498824 -411346 -827922 -1826636 -1844777 -1862918 -1881060 -746534 -100479 -845832 -1832756 -194

matlab 自动生成C代码

1.准备M文件 simpleProduct.m function c = simpleProduct(a,b)c=a*b; 2.在matlab工作界面输入coder,输入工程名称 simpleProduct 3.在工程中添加simpleProduct.m文件 4.定义输入变量a,b的数据类型 5.生成mex函数,测试程序是否正确 6.生成C代码,勾选Generate code only 7.在当前目录的  codegen/lib/simpleProduct/ 下可以看到生成一堆.c 和 .h 文

Matlab三种归一化方法

归一化的具体作用是归纳统一样本的统计分布性.归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布.归一化有同一.统一和合一的意思.无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,且sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理.归一化是统一在0-1之间的统计概率分布,当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减

在matlab中生成m序列

实验环境为matlab2013b 1.首先编写一个mseq.m文件,内容为: function[mseq]=m_sequence(fbconnection) n=length(fbconnection); N=2^n-1; register=[zeros(1,n-1) 1];  %移位寄存器的初始状态 mseq(1)=register(n);        %m序列的第一个输出码元 for i=2:N newregister(1)=mod(sum(fbconnection.*register),

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

建立m文件draw_rectangle.m. 其中p生成矩形的个数 function draw_rectangle(p) t = 1; x = rand(1)*10; y = rand(1)*10; w = rand(1)*10; h = rand(1)*10; b =[x y w h]; rectangle('Position', b) a{t} =b; flag =1; while flag ==1 x = rand(1)*10; y = rand(1)*10; w = rand(1)*10

MATLAB设置每条直方图X坐标名称

x=[1 2 3]: n=[2 4 6]: bar(x,n): set(gca, 'XTickLabel', {'张三','李四','王五'}) 这里的gca是get current axes的缩写,即获取当前X轴句柄,类似的变量还有gco (get current object).gcf (get current figure)等 原文https://blog.csdn.net/vernice/article/details/46658353 原文地址:https://www.cnblogs.

(转)matlab练习程序(HOG方向梯度直方图)

matlab练习程序(HOG方向梯度直方图)http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html HOG(Histogram of Oriented Gradient)方向梯度直方图,主要用来提取图像特征,最常用的是结合svm进行行人检测. 算法流程图如下(这篇论文上的): 下面我再结合自己的程序,表述一遍吧: 1.对原图像gamma校正,img=sqrt(img); 2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率. 3.