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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

/ s  m2 k5 X' b* u用matlab可以画出一组随机数的概率密度图1 z9 n( _' L2 N! h* u' l
, Y, U3 |; A2 ^  y& {
x=normrnd(1,0.5,1,1000);( G/ V$ z. s6 s7 G* d
xmin=min(x);
9 x0 r) O' N4 u; vxmax=max(x);
4 O  ?1 A3 ~3 f  }6 z+ |xp=linspace(xmin,xmax,20);# T; b6 a1 _0 n/ O6 i3 M  |* I" o
f=ksdensity(x,xp);3 S8 j: R  f! A6 \* |. K- e' G
plot(xp,f,'*');. [5 W8 V. K& }7 U3 ^, d1 B
如何画出xp所对应的概率分布值呢?
, b& c) L) q8 Z' c好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;" Y8 b' k/ }, ~  U! f* y9 f
谢谢!$ K5 \$ C3 z: t% \" f# a
5 r, }- [' L) L% G0 v, s$ C

该用户从未签到

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 K: ?- `8 J7 z9 [- r8 `
$ W. A6 v& e! k3 t; {, u
' T8 ]# ^8 C2 f' X) C
7 c9 E1 u) o; G3 ~% h  n
经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);
    % y( L' y$ A9 M6 h7 R4 d. \

7 i! J$ b  o( E: l! Z7 U: ^
' H( L* b' S0 G$ z1 V, {+ n4 u& X9 y* T8 Z$ g( U% H- v$ E1 S" d% H( N
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);
  • : K* c1 d1 a5 q/ J+ H

0 M4 P9 W2 z$ z% h5 `" g1 P" b$ L) x9 _& C$ H1 D/ Z

+ z$ c7 }" x$ w7 q, F' T8 @; T% Y

点评

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/ c0 h; \# S4 S- X" e( q& a
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...

  • # ^: m2 v) R  Vcdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说8 N7 \9 R# z9 a7 Z3 y* o
    我们无法控制x轴的取点的间距; @* P. J- ~4 ?' W: [, K
    比如
    7 u' Q% H5 Z- I% ?[f,xi]=ecdf(x);( D$ E. }/ y' H+ w) }
    plot(xi,f,'.'); ~, z% M' S9 l; A/ S! P- B
    ; ?' _  |! n% T8 ]
    # R8 f' i$ H: K0 w3 V6 k; t
    请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    ; _  |- O, A) \8 o$ k9 @& O+ d; x! S2 g+ Q/ V( X( S5 V' ]1 Q5 S
    6 b* C/ h3 z# N- B* z/ @% V

    0 |, U+ x8 m. k' M
    ' t/ {( q' d. D8 P4 w
    ; n# }8 M3 E/ S9 t* j7 Q" e+ S) f9 q2 h7 I7 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
    * T4 r. d6 p$ ^9 e) c+ J8 \cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    8 |& ?4 Q  g) {+ n我们无法控制x轴的取点的 ...
    4 H5 W. @# U, J1 R; S
    可以这样
    4 y; q0 {: ~* b, v
    • 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 i- ?' c' r2 s
    . d- I6 S& J) q0 x4 I/ t2 W

    4 s+ d6 E8 X% {0 V; T' K- B6 G4 w1 s3 e* n0 F" L/ v

    # J9 A/ \2 o9 }) ]: D. ^) F
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 02:19 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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