相关Matlab函数:hist, bar, cdfplot, ksdensity

(1) hist函数

n = hist(Y, x) 

假设x是一个向量,返回x的长度个以x为中心的,Y的分布情况。

比如:假设x是一个5元素的向量,返回Y在以x为中心的,x长度个范围内数据直方分布。

[n,xout] = hist(...) 

返回n和xout。包括有数目频率和间隔位置。能够使用bar(xout, n)来绘制直方图。



(2) bar函数

绘制条形图。bar(X,Y) 将Y矩阵的每一行化成一组条形图。条形图组数为行数;每组条形图数目为X矩阵的列数。

X指定条形图的中心位置,不能有反复的数。



(3) cdfplot函数

格式 cdfplot(X) %作样本X(向量)的累积分布函数图形

[h,stats] = cdfplot(X) %stats表示样本的一些特征



(4) ksdensity函数

假设你得到一堆数。你想知道它们的大致分布,能够使用kedensity函数解决问题。

命令例如以下:

[f,xi]=ksdensity(x)

plot(xi,f)

当中,f是预计的密度值,而xi是一个辅助參数。用来决定画出图形的取值区间,简言之,xi大致涵盖了x的取值区间。

看过图形之后,開始对分布有大概的直观印象,然后能够用比方normfit命令来获得相关的參数估值。

演示样例1: 使用hist预计cdf

hist 是统计数据在指定的区间内分布的个数。这个分布的个数体现的是随机变量的分布状况,假设你的数据量足够多的话,hist 的结果能够用于估算随机变量的 cdf。

dx = 0.001;
Num = 100000;
x = -4:dx:4;
y = randn(Num,1);
[n,xout] = hist(y,x);
cdf = cumsum(n)/Num;
plot(x,cdf,'b-','LineWidth',6); hold on
plot(x,normcdf(x,0,1),'r-','LineWidth',2)
legend('Empirical CDF via hist', 'Analytical CDF via normpdf',4);
axis tight

演示样例2: 使用hist函数和导数定义预计pdf

随机数据给定的情况下,ksdensity 能够获得对 pdf 的较好的预计,它的算法是基于高斯核函数。预计较为准确。

hist 仅仅能粗略的预计 pdf (虽然 hist 预计cdf比較精确)。这是由于 hist 预计pdf的办法是先预计 cdf。cdf再求导得到 pdf,数值求导的过程easy引入较大的误差。比方。以下的办法是利用导数的定义来求导。

求导公式为:

<img src="http://latex.codecogs.com/gif.latex?f(x)=\dfrac{dF(x)}{dx}=\lim_{\Delta x\rightarrow 0}\dfrac{F(x+\Delta x)-F(x)}{\Delta x}"/>

dx = 0.001;
Num = 100000;
x = -4:dx:4;
y = randn(Num,1);
[n,xout] = hist(y,x);
pdf = n/Num/dx; % 导数定义
bar(xout,pdf);hold on
[f,xi] = ksdensity(y);
plot(xi,f,'ro','MarkerSize',8,'LineWidth',2);
plot(x, normpdf(x,0,1),'r-','LineWidth',2);hold off
legend('Empirical PDF via hist','Empirical PDF via ksdensity', 'Analytical PDF via normpdf');
axis tight

演示样例3:使用hist函数和求导函数gradient预计pdf

dx = 0.001;
Num = 100000;
x = -4:dx:4;
y = randn(Num,1);
[f,xi] = ksdensity(y);
[n,xout] = hist(y,x);
cdf = cumsum(n)/Num;
pdf = gradient(cdf,dx);
bar(xout(1:50:end),pdf(1:50:end));hold on % 每隔50点抽样,为了更清楚显示pdf
plot(xi,f,'ro','MarkerSize',8,'LineWidth',2);
plot(x, normpdf(x,0,1),'r-','LineWidth',2);hold off
legend('Empirical PDF via hist + gradient', 'Empirical PDF via ksdensity','Analytical PDF via normpdf');
axis tight

參考文献

『http://www.ilovematlab.cn/thread-272344-1-1.html』

『http://www.ilovematlab.cn/thread-272251-1-1.html』

Matlab依据样本随机数求概率曲线的更多相关文章

  1. matlab 全部的随机数函数

    matlab 全部的随机数函数 (一)Matlab内部函数 a. 基本随机数 Matlab中有两个最基本生成随机数的函数. 1.rand() 生成(0,1)区间上均匀分布的随机变量.基本语法: ran ...

  2. [MATLAB] 利用遗传算法函数求目标函数的最优解

    最近接触到了遗传算法以及利用遗传算法求最优解,所以就把这些相关的内容整理记录一下. 一.遗传算法简介(摘自维基百科) 遗传算法(英语:genetic algorithm (GA))是计算数学中用于解决 ...

  3. MATLAB线性方程组的迭代求解法

    MATLAB线性方程组的迭代求解法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验目的 1. 借助矩阵按模最大特征值,判断解方程组的Jacobi ...

  4. MATLAB PCHIP函数一阶求导分析

    MATLAB PCHIP函数一阶求导分析 摘要:本文首先根据三次立方插值的一般表达式,得出分段三次立方插值时,每个小区间上的各次项系数.分析发现,三次项.二次项.一次项系数都与小区间端点处的一阶导数值 ...

  5. matlab练习程序(求向量间的旋转矩阵与四元数)

    问题是这样,如果我们知道两个向量v1和v2,计算从v1转到v2的旋转矩阵和四元数,由于旋转矩阵和四元数可以互转,所以我们先计算四元数. 我们可以认为v1绕着向量u旋转θ​角度到v2,u垂直于v1-v2 ...

  6. matlab(4) Logistic regression:求θ的值使用fminunc / 画decision boundary(直线)plotDecisionBoundary

    画decision boundary(直线) %% ============= Part 3: Optimizing using fminunc =============% In this exer ...

  7. matlab练习程序(求灰度图像最大灰度,最小灰度,平均灰度)

    转自 http://www.cnblogs.com/tiandsp/archive/2012/01/07/2316006.html  感谢Dsp tian clearclc;img = imread( ...

  8. matlab(3) Logistic Regression: 求cost 和gradient \ 求sigmoid的值

    sigmoid.m文件 function g = sigmoid(z)%SIGMOID Compute sigmoid functoon% J = SIGMOID(z) computes the si ...

  9. matlab计算样本熵

    计算14通道得脑电数据吗,将得出的样本熵插入Excel表格 a = zeros(1,14); b = a'; for i =1:14 b(i) = SampEn(d1_1(i,1:3000),2,0. ...

随机推荐

  1. CodeIgniter实现读写分离

    http://pengbotao.cn/codeigniter-mysql-proxy.html

  2. appium+python自动化-xpath定位

    基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 //*[@text='text文本属性'] # 定位text driver.find_element_by_xpa ...

  3. linux 第五部分 系统管理员 网络设定与备份

    linux 第五部分 系统管理员   网络设定与备份 系统基本设置   1.网络的设置  手动设置与dhcp自动获得     以及更改主机名称 centos 7   对网卡编号的规则 enol1  b ...

  4. POJ 1606 Jugs

    Jugs Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4280   Accepted: 2533   Special Ju ...

  5. rsync同步命令

     rsync同步时,--delete删除目标目录比源目录多余文件的方法1 .实例说明 服务器A上同步/tmp/work目录到远程服务器B的/tmp/work目录下, 同时删除B服务器/tmp/work ...

  6. 利用ps,grep,kill联合杀掉相关进程

    #!/bin/sh . "./set-server-env.sh" 这里是输出ps -ef |grep java 结果的第二列的内容然后通过xargs传递给kill -9,其实第二 ...

  7. [TJOI2009]开关 (线段树)

    题目描述 现有N(2 ≤ N ≤ 100000)盏灯排成一排,从左到右依次编号为:1,2,......,N.然后依次执行M(1 ≤ M ≤ 100000)项操作,操作分为两种:第一种操作指定一个区间[ ...

  8. Bzoj2007 [Noi2010]海拔(平面图最短路)

    2007: [Noi2010]海拔 Time Limit: 20 Sec  Memory Limit: 552 MBSubmit: 2742  Solved: 1318[Submit][Status] ...

  9. 查看Linux每个进程的流量和带宽

    原文:https://blog.csdn.net/monkeynote/article/details/45867803 作为一个系统管理员,有时候需要搞清楚一台机器上的哪个进程占用了较高的网络带宽. ...

  10. 简单题(bzoj 1683)

    Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格 ...