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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

6 O0 X4 j" x) u6 }' y8 _& n5 O) d用matlab可以画出一组随机数的概率密度图( {& }7 ?6 c0 v5 f7 d, e
' Z* A! a' E- o- k: \, l  I: S; T
x=normrnd(1,0.5,1,1000);
9 C8 A+ r+ c# _* _' Lxmin=min(x);
0 f, i& h" K. S: t7 yxmax=max(x);
+ y' O, q' ]0 bxp=linspace(xmin,xmax,20);
. b9 m0 Z1 M, s/ J) L: Vf=ksdensity(x,xp);
' o, u' G- \0 oplot(xp,f,'*');
/ Q, v, y5 k: P! X如何画出xp所对应的概率分布值呢?; G3 E$ D& S0 D
好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;+ Y' ~) }" e& {" y+ _1 m
谢谢!( h2 I6 j- W6 N) l  J

* ?7 |! X# y' b

该用户从未签到

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); % 绘制频率直方图
    # Y5 Z  K6 m# R2 w. @! j* H1 U8 l
6 \7 y* |, t* P. _( W" _- R
7 `' T1 R" {; S" W( r9 Q  q

2 o$ o; y' T# C1 e4 O经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);
    7 P& G, E& u; K$ X3 A7 {: k
& X$ i) O/ r3 Z! b, _5 d
  o4 K/ K2 P% p+ K4 U
* H* H: {8 m2 D% [2 M
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);

  • - S; ~' c% _/ h1 d  U0 g  Z

  y" X. M# g8 K, y$ ?3 U+ T: u* J
% X9 s) v! ]' h5 g& v# }5 o2 B
8 I; i5 Q3 a6 b) ]& n8 ~

点评

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
$ _0 f% m1 K5 d  G$ j8 T+ l  f! ]# N频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...
  • 2 U  d- _* h" V
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说1 s2 T& L, `4 F# Y. K- ^
    我们无法控制x轴的取点的间距
    4 P) o$ J- A0 V. R比如
    + i7 ?$ v) C" l- c, ~% O. \[f,xi]=ecdf(x);, w$ {+ B5 U) ^
    plot(xi,f,'.')$ W5 b: t7 }4 x0 s+ t
    $ Q* G1 b2 q3 t) K
    ! H" _! D8 y$ q5 j+ R
    请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    * T) F) }' D( j- B2 s' b2 C. ~: ^
    + P+ E4 U: |# k$ i4 m) u
    % Y$ T0 Q) H, O& f* M: u' [ 0 ^5 \0 n! ^6 W/ [2 e6 z/ Z

    1 e) @' u9 z/ j: B& _/ ]( Q' o2 }* U- X1 w

    - i7 A& n8 B& p) C) m, ]" N

    点评

    可以这样 [*]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:242 h# q1 c, ]+ y" K, x
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    ( H. R1 S! _9 L. s我们无法控制x轴的取点的 ...

    4 V0 H6 @- S/ C6 k# J1 f7 \: ]- ~& f" U可以这样
    " c; w5 S9 E4 c* k$ j3 f; H
    • 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');
      . e5 c8 I; t9 g+ x+ Q

    1 J5 P/ J2 R: v! m  j' {
    % H) f# h5 K8 w- Y) X* H  W2 ]3 ]5 ?1 ~: H
    1 [1 W! s% `( \
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-19 03:52 , Processed in 0.125000 second(s), 32 queries , Gzip On.

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

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

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