相关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. A. Nearest Common Ancestors

    A. Nearest Common Ancestors Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 10000KB   64-bi ...

  2. I/O输入系统

    I/O输入系统 计算机有两个主要任务:I/O操作与计算处理.在许多情况下,主要任务是I/O操作.而计算处理只是附带的. 操作系统在计算机I/O方面的作用是管理和控制I/O操作和I/O设备. 概述 对与 ...

  3. hiho week 143

    P1 : hiho密码 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB Description 小Ho根据最近在密码学课上学习 ...

  4. hdu2051

    二进制转换 #include <stdio.h> void change(int n){ ]; ; while(n){ num[cnt]=n%; n/=; cnt++; } cnt--; ...

  5. 【Luogu】P1594护卫队(前缀和+DP)

    TM搞了半天的二维DP方程还是错的. 这是题目链接: 设f[i]表示前i辆车顺利通过的最小时间. 则对于每一个i枚举该组车的起点j,然后从所有的f[j]+Min[j][i]中选一个最小的. Min[j ...

  6. ajax同步导致ajax上面的代码不执行?

    js代码:环境:IE11要求:点击一个按钮后,页面xxx的地方立即显示"开始处理...",直到ajax处理结束后,xxx内容才更新为新的处理结果:点击事件执行代码如下:xxx.in ...

  7. CSS参数介绍

    原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 行高       line-height: 16px 宽度       (具体位置)-width: 16px 文字 ...

  8. java多线程总结一:线程的两种创建方式及比较

    1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应 ...

  9. Linux 下 GCC 编译共享库控制导出函数的方法

    通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪 ...

  10. DDCTF2019逆向分析前俩题WriteUP

    DDCTF2019 笔者做了前俩道题.冷不丁过去一个月了.现在在此做一下WriteUp:题目链接: 1:题目1 2:题目2 reverse1:writeup: 1.程序打开后如下所示 2.查壳结果为U ...