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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
. U9 P* z, N$ j* v/ r
用matlab可以画出一组随机数的概率密度图+ |2 _4 M, r) c/ n
% m# Q" h9 p6 b; `' l: q. p
x=normrnd(1,0.5,1,1000);
0 x3 N% b# R, F- C  lxmin=min(x);
; @0 S9 T$ ~! I; W5 F& nxmax=max(x);
) c; x0 N, Z5 s- N  ]0 {( E+ V9 bxp=linspace(xmin,xmax,20);  e' \; [& d% }6 f" \; n9 e0 C
f=ksdensity(x,xp);
  o1 R* ?3 b8 N4 ]' T4 Fplot(xp,f,'*');
; Z; Z0 m# h& A* u! s如何画出xp所对应的概率分布值呢?
  D8 [6 B1 G3 ~1 s" w/ r( J好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;
$ h' P- ?  c0 ]. l9 E9 L谢谢!: p  ^4 A5 E5 G6 l/ d' J& }+ b$ L" Q

1 f% a* k4 n" V6 J% O1 r

该用户从未签到

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 N6 T! D! L3 S0 T' _& ~% o
+ K- c. W6 i1 o) u

& S% O( |8 k/ `. A2 }9 A, o/ I" ?
* p2 h1 S) @- G0 Y/ V经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);$ O9 g( |; ]5 H: }* }9 J% X
  M( X" y" d$ {) ~- |4 G

0 a) b  S) n2 G$ P  u5 b' Y: ^( @0 R9 {+ u
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);

  • 6 b* v' k  G2 L* W% b* T: b9 N5 J
( ~( k. y1 z& F" T" t$ H' P4 @0 B

  P; F+ T# D: V0 y% P9 b' Q* e3 F, W: `' R: S

点评

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:209 ?0 k- C' q( J! D6 e8 n
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...
  • 8 q) z9 ?) c( J5 I' A
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    9 O6 n- [4 [, f/ D3 T7 D我们无法控制x轴的取点的间距
    8 q' H& X- H1 R" v0 V, X/ C6 J比如
    : D5 m7 C9 k3 o) i: f$ U[f,xi]=ecdf(x);
    ! m5 |. F! Y; g. A* {8 Gplot(xi,f,'.')
    / k) z* t) T" _. w) b/ Y
    / h( X* {! Y" @: k2 k$ B
    - c3 f0 i7 s9 J. P. r+ D请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    3 E/ N- B# b- T2 i. N$ Z' F3 i1 t
    0 x; e1 I6 y9 t  d5 q- U8 ^; e  f5 V% z: m
    + Q0 |( S- u" G. d9 s9 p3 i
    / N8 d7 s# p; q0 j

    : y! j0 y# ]  e; U3 C' r& K, t
    % X: T+ J3 K- |$ g

    点评

    可以这样 [*]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:247 L5 S+ b5 \3 P, L
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    % }3 l0 `8 i1 G: |5 z0 b. [我们无法控制x轴的取点的 ...

    , j3 D# q: o$ j5 ?可以这样: q1 L1 t5 ^* s7 ?, j; Q
    • 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');0 r& Y0 M  v# s) ?9 J/ z
    ( ?2 ^8 O* ]' n: ?3 ?

    ' c, L" Z, H8 {7 u8 u# r  P- T. z! f5 b; F1 x: N/ L

    + ^" ?" n7 F" \8 e$ ?1 i- @- j
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-29 15:08 , Processed in 0.171875 second(s), 31 queries , Gzip On.

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

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

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