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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

! W- D2 N* y# A5 s. m0 J用matlab可以画出一组随机数的概率密度图
: s8 G' y2 [% e
5 J7 g: y# C9 e) O" e9 X8 f2 |9 ^, s& ix=normrnd(1,0.5,1,1000);; \1 E% _, x) ?! Y& A; X( ^
xmin=min(x);
( H0 _0 Q. D1 H0 h1 a  Exmax=max(x);
, ^+ s, }! h: c- v. q; vxp=linspace(xmin,xmax,20);3 V: c5 b9 S  X; a  {+ _: Q1 Q4 M: K
f=ksdensity(x,xp);* K4 G6 O7 `( s$ V& E( B% X
plot(xp,f,'*');
5 Q& E8 {4 u# F* t, z! y如何画出xp所对应的概率分布值呢?
5 V7 r6 g# j  x& a7 [' P: X$ m好像cdfplot,只持一个输入参数cdfplot(x,xp),不支持cdfplot(x,xp)的形式;$ [$ K2 b, M! ?- |' W; C' Z# r
谢谢!
7 |% o7 ^. B; T* E- h
( W$ {9 B: F" |# q% m' g9 s  V

该用户从未签到

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); % 绘制频率直方图! C2 v& w& }' {. b, O' k
: Z% ?" K' B) D7 \/ R* m! [$ G

! \. ^% w! o1 Q8 e; F6 Q* w* T" R" a3 M8 ^
经验分布函数(累积分布)图的画法:
  • ecdf(x); %或 cdfplot(x);9 P* I. P3 _; P) a, G/ p2 z/ E; x
" |5 x7 O! p5 e0 i
. @6 {- [$ f0 H; q
5 d$ @- O7 C4 @( x" x; B1 r
核密度函数图的画法:
  • x = sort(x);
  • ksdensity(x,x);
  • . y' x  u/ J7 z. \- H: ?

6 c0 n( i8 G' B* V# {9 Y; l4 c) _5 q2 ~( z" n
+ b9 @& O  c: h6 ~9 r( }) i# I7 U) 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% F$ h! z% B% \
频率直方图(注意不是频数直方图)的画法:
  • x=normrnd(1,0.5,1,1000);
  • [f, xc] = ecdf(x); % 调用e ...
  • " }1 C4 I3 ]; I" L- d( U2 E( y+ A
    cdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    1 R7 t& c* i- M$ m4 D$ f% ^我们无法控制x轴的取点的间距+ W- ?2 a3 B* j$ l* X& m
    比如
    ) `  x" U" Y/ U  {[f,xi]=ecdf(x);& @; q5 _4 W/ d3 y2 }4 q
    plot(xi,f,'.')' L  S/ L1 X5 O$ _) u. \

    * ~5 `, o  ~$ w, v- q  V+ H
    . m, @- e6 K2 s0 |请问能否采用什么方法,控制x轴的取点间距,得的所需要的离散效果图。
    9 l: G  j4 }* n6 z# M
    " }! ]- ^5 l# b1 v1 n+ L( P0 K- r9 T% S0 p% e; c' x

    4 h6 K" ~+ Z0 s4 d, {
    2 F' s- Z# _- B$ ?/ X2 H+ I, a! B; _* L" R

    + j+ E. u5 Y) q1 q1 R+ H& z

    点评

    可以这样 [*]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
    6 Q1 D; m1 ]. b: z" n# K* o) Icdfplot或者ecdf+plot这两个命令无法画出像一楼贴出的那种离散效果,也就是说
    ; _0 \; b2 f% d* g4 L) q我们无法控制x轴的取点的 ...
    8 z; a& f3 h& w& R9 V9 ?
    可以这样' M, `) g- {  L: 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 l. J$ G: Y9 }' a8 ]
    8 X2 Y' D5 T- r: b8 w/ u6 n

    , t3 }, s( B- X" Z; Q" R3 y6 o* h# I5 i4 x5 m. d0 s, t1 W, F
    * q4 J: G/ [2 ?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-5 10:18 , Processed in 0.156250 second(s), 31 queries , Gzip On.

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

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

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