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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
3 b  L9 L3 s( U1 p/ }& H) S
用matlab可以画出一组随机数的概率密度图
; M; P8 ]5 y( ~+ ^/ `
9 P3 c6 t7 H( k. Ux=normrnd(1,0.5,1,1000);' L, f) K& ^% w! J
xmin=min(x);
4 ~: S4 B8 ^+ nxmax=max(x);
* ^$ g! V" U0 u4 b4 X  lxp=linspace(xmin,xmax,20);
% ?  e( d& j/ j( Hf=ksdensity(x,xp);7 g, H! q! K% O5 _' x' T
plot(xp,f,'*');: W9 m" j( T" s9 ~4 [- ~0 ^
如何画出xp所对应的概率分布值呢?3 O; a6 x7 }/ e/ X( M% }' K* B
好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;4 p. P9 X; b, ~& d
谢谢!
, S" E' k0 r+ m+ O/ Z$ w2 t+ F . |6 g+ |/ B, m1 w& i! ]3 u0 b6 J

该用户从未签到

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); % 绘制频率直方图2 y3 Y$ D& ?8 ?: H

  ~+ _  C0 N" k8 M/ J4 Z- P0 P& ]+ b7 Y. _$ `! H+ \
5 X/ N! _, }& S% R0 G" t7 B
经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);
    9 o6 N% M1 S& ]4 Z: h
, Z5 Y0 O& c% Q# G- v# G

1 g' I; r% U2 Q1 i- A3 J( T/ c9 [2 H: U2 @+ a4 _  X" o$ Z* K
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);

  • 7 o/ c0 J5 r" c$ R
1 r0 ~" h. H7 c, [+ }

7 ~" O8 t: e* C5 U5 T3 E( Y: j3 w/ ]; s8 ^

点评

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
8 c! O/ M2 k2 h3 W+ m频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...
  • 6 x( {. j7 j8 F0 k: ]
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    3 ]$ e( A$ u4 n1 d2 P% H' P7 V& b我们无法控制x轴的取点的间距
    ) w/ O4 H# k7 S9 f- J. p" A- W比如9 _! a/ p1 o, k( j+ e
    [f,xi]=ecdf(x);
    7 g$ t. R0 A6 Cplot(xi,f,'.')
    % B# a3 e1 X4 X* l
    - G/ p  x; B6 z. O8 n  F; O1 |6 e& w. t$ V; a* Z
    请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    0 S9 [2 L1 d  Q" T8 W* |
    & f6 n4 P# d4 ~6 Y* g+ I
    1 u, Q" y! G* Q/ J: |& r7 B8 D& F
    ; y1 d' c0 I1 V$ S
    & b0 r; k, R* {4 U. _
    % P$ K, |0 U# Z0 g  w# G( b2 P0 w4 j% P2 P; a9 k

    点评

    可以这样 [*]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
    + O1 B1 J  M$ S) O/ I/ bcdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    ) c7 o. d8 ^% z* h* d3 ^我们无法控制x轴的取点的 ...

    4 W/ j5 w' K6 a! Q可以这样
    8 v9 D" v5 y7 [/ G* {5 F
    • 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');
      8 j  j" h" L( f4 H/ C# |
    ) [9 b9 N' g0 F: C/ U/ ~4 F' R

    ! ~: E: Y5 H# I' r  ?
    / a+ Y5 o! |  w% {: q8 {" `5 l# j/ @. O0 `
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 19:07 , Processed in 0.187500 second(s), 31 queries , Gzip On.

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

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

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