Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 简单的数据处理

假设我得到了这组数据。排序后,可以如下所示绘制分布。

M=[-99 -99 -44.5 -7.375 -5.5 -1.666666667 -1.333333333 -1.285714286 0.436363636 2.35 3.3 4.285714286 5.052631579 6.2 7.076923077 7.230769231 7.916666667 9.7 10.66666667 16.16666667 17.4 19.2 19.6 20.75 24.25 34.5 49.5]

我的问题是如何找出介于中间范围内的值并记录索引。使用正态分布还是其他?感谢你的帮助!

图片为乔纳斯'



回答:

假设您的中间范围是[-10 10],那么索引将是:

> find(-10< M & M< 10) ans = 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 请注意,您也可以通过逻辑索引访问值,例如:

> M(-10< M & M< 10) ans = Columns 1 through 15: -7.37500 -5.50000 -1.66667 -1.33333 and so on ... 而要获得您的中档,只需:

> q= quantile(M(:), [.25 .75]) q = -1.3214 17.0917 > find(q(1)< M & M< q(2)) ans = 8 9 10 11 12 13 14 15 16 17 18 19 20 还要注意,此处使用M(:)来确保quantile将M视为向量。您可能会采用以下约定:程序中的所有向量都是列向量,因此大多数函数会自动正确地对待它们。

更新:
现在,对分位数的简短描述是:它们是从随机变量的累积分布函数( cdf )中获取的点。 (现在假设您的M是cdf的一种,因为它不减,并且可以归一化为1)。现在,仅将数据的0.5分位数“意味着50%的值低于此分位数”。有关分位数的更多详细信息可以在此处找到。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 02:58


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.