找回密码
 注册
关于网站域名变更的通知
查看: 1091|回复: 4
打印 上一主题 下一主题

Matlab如何画出一组随机数的概率分布图???

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-28 14:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  W# T# J2 b$ D; U) ~3 [4 s
用matlab可以画出一组随机数的概率密度图
6 U3 A6 r/ r0 J8 A; Y9 j
7 J% h5 a5 B1 i$ k- rx=normrnd(1,0.5,1,1000);5 z" d5 ]# S3 M" f7 q) z" `% F, O
xmin=min(x);
3 h+ \0 ?  B% T) i9 y# k/ Nxmax=max(x);/ ^0 e) ?' T) V) I) J# I0 M
xp=linspace(xmin,xmax,20);
7 S/ O5 v) \: |8 Z& }5 Af=ksdensity(x,xp);% R- X$ _( p9 Q' k+ E
plot(xp,f,'*');  P7 ?$ e- \4 E2 V& z2 C
如何画出xp所对应的概率分布值呢?4 I% G: ^% r, z+ M
好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;
9 C% S4 x6 a+ ^5 J) n. @! O! ^# p谢谢!3 h( v5 N' u* y1 J# S- W* k
  }# i( y% m3 y+ H# V

该用户从未签到

2#
发表于 2021-6-28 15:17 | 只看该作者
竟然没读懂,难过了

该用户从未签到

3#
发表于 2021-6-28 15:20 | 只看该作者
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用ecdf函数计算xc处的经验分布函数值f
  • ecdfhist(f, xc); % 绘制频率直方图
    1 J) V( P! j7 S9 k3 |
9 G  }  V# d$ n: _

' ]$ {( ]6 C/ ]* e7 `  [) ]) J/ Q$ I0 Y
经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);
    $ l4 d9 }0 A( s

4 w+ S* U% u1 L5 v# j+ `& W) m! w1 y1 g$ @3 e* q
7 @/ W7 R8 \: X, R/ v+ M
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);
  • " }( ?$ x3 `4 S/ ?7 |
  `/ _% q5 z! s+ ^" \' Y/ i+ h6 C5 w

/ g- N) T. \) Y7 [; Q+ {
9 E( n1 [  c9 {5 O

点评

cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说 我们无法控制x轴的取点的间距 比如 [f,xi]=ecdf(x); plot(xi,f,'.') [attachimg]319770[/attachimg] 请问能否采用什么方法,控  详情 回复 发表于 2021-6-28 15:24

该用户从未签到

4#
 楼主| 发表于 2021-6-28 15:24 | 只看该作者
piday123 发表于 2021-6-28 15:20$ }9 F: k/ p3 R/ w
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...
  • & ~7 @) e$ T, T: A5 ~0 }
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    , M9 g' O8 J, r" o8 J2 B我们无法控制x轴的取点的间距1 l% O8 C* ?2 ]
    比如: }2 I9 O8 f  l( n
    [f,xi]=ecdf(x);
    2 Z, E& U# y0 `$ m5 H) O4 N2 hplot(xi,f,'.')
      w& f4 U* x) n1 x9 p 0 |2 F8 D- M9 H9 w

    . I. O  o# N2 _( G  \请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。+ i) \! o# v4 U6 W8 @. G3 v
    4 t3 Y) k4 G! L5 s% J% c

    * ]$ L2 T3 s  U1 `: m 6 V1 w. m8 {' d6 p
    6 B+ h: t4 l7 G
    . R' ?  Y1 n* Y

    ; E- V, C  ~* K3 y2 j& z2 L9 I

    点评

    可以这样 [*]x = normrnd(0,1,1,1000); [*][f, xc] = ecdf(x); % 调用ecdf函数计算xc处的经验分布函数值f [*]xx = linspace(min(x),max(x),50); [*]y = []; [*]for i=1:length(xx) [*] id = find(xc  详情 回复 发表于 2021-6-28 15:24

    该用户从未签到

    5#
    发表于 2021-6-28 15:24 | 只看该作者
    SpencerJ2 发表于 2021-6-28 15:24
    * m( `5 t" d: a9 i  dcdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说- u( L8 L3 J" T% ~: v
    我们无法控制x轴的取点的 ...

    , X% s$ I  H1 E可以这样
    % A; X+ ^7 {  t, ]$ B3 S2 }! Z
    • x = normrnd(0,1,1,1000);
    • [f, xc] = ecdf(x); % 调用ecdf函数计算xc处的经验分布函数值f
    • xx = linspace(min(x),max(x),50);
    • y = [];
    • for i=1:length(xx)
    •     id = find(xc <= xx(i));
    •     if ~isempty(id)
    •         y(i) = f(id(end));
    •     else
    •         y(i) = 0;
    •     end
    • end
    • stairs(xc,f);
    • hold on
    • plot(xx,y,'.r');( P* p, O/ {5 o) z
    - L( n0 c& n1 j  Y/ ]4 x' b- f
    4 a5 R/ f8 `/ x9 h' o" W8 a
    ! F9 c, Z  H  R3 J- w- M( W

      h: y( M0 q+ ]! F( ]' ?. z
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 21:29 , Processed in 0.171875 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表