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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
3 q& A9 g) S( h# d
用matlab可以画出一组随机数的概率密度图
+ Q1 B8 O0 r, s3 l: `8 O, @' G, _4 V! E+ I
x=normrnd(1,0.5,1,1000);$ Y0 t  R: j. E3 C) _
xmin=min(x);5 f' m6 d5 z0 v! R
xmax=max(x);- ~7 J# ^: m3 @9 [
xp=linspace(xmin,xmax,20);8 q. V- l0 E4 X, g$ K
f=ksdensity(x,xp);
* P. B% ~% @8 k3 J3 E, X; Rplot(xp,f,'*');
8 @# F& M" C9 n0 s7 _# A如何画出xp所对应的概率分布值呢?
$ j0 U7 N3 u1 _% @) ?0 p好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;
! K& {9 \# k4 a谢谢!
( w) z7 A  K2 b+ X 3 Z8 A7 D0 I* S9 s+ `0 X

该用户从未签到

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); % 绘制频率直方图
    5 O9 ?# h/ U- R. y8 c* `4 J: Z' K, ~: _

; S; j, R9 H( |
: A: J' R# m( C& O5 d% C  x" O9 o4 \( t4 F. s# v2 }4 w( z
经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);
    9 \9 ^! U6 L; ^% _! M; R

3 l# ], `, _4 p# A
+ u3 K5 o( a8 q# A7 w+ v- B: c2 B8 {& g  C
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);
  • 8 D' _% X( R8 Y! [

' j2 M9 S0 W& z( ?# p2 j( K- z: s) F& C! t( z1 p
6 T9 m4 Z5 L6 ]: z0 l7 R; F  _. ]

点评

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) A/ T- W0 Q& s0 ?, J
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...

  • & h6 d; A& e- N% ^6 c/ _& gcdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说: `# a+ a& d8 D% z1 p( q9 z, |2 z
    我们无法控制x轴的取点的间距
    " {9 Y7 H( l" j* n/ `9 g  Q( z( o比如
    9 U" }- {& y7 q# @7 h[f,xi]=ecdf(x);  ^0 n: W( H5 r5 A) u
    plot(xi,f,'.')
    9 s/ B2 G' L8 X4 Q! Y3 n 9 Q- [( S- ?& e& [- m
    ) W  [. P, E$ M5 _9 A& _' ?2 X7 b% [
    请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    % u. V6 X) [  F4 P4 A2 l" o3 s# D0 P6 C

    8 i( D" T0 b! w3 e
    - H0 e8 w/ j0 T  U5 g& ^9 l: X% D7 H7 X0 x, ]: _

    9 }" J' g- Z/ A$ U# s" [$ n- [" h$ K0 p% D5 J9 y* R+ a1 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  详情 回复 发表于 2021-6-28 15:24

    该用户从未签到

    5#
    发表于 2021-6-28 15:24 | 只看该作者
    SpencerJ2 发表于 2021-6-28 15:24* W, \6 W- c5 K$ }0 J
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
      Q+ m0 ~$ E' i: l9 s' U4 R我们无法控制x轴的取点的 ...

    ! g( {3 Z3 I- j- X, M可以这样
    4 S5 Z3 p6 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');7 {2 l: G- G9 N: O7 {

    - _; x" r4 a8 [$ P0 e0 t) b/ U% B5 L( g& H) K; F+ Y
    1 Y9 a* c- Z& x9 _6 ?
    3 Q1 b5 S. J/ h6 K4 u2 ~
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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