MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 想用循环依次去掉向量里面的某些元素 (https://www.labfans.com/bbs/showthread.php?t=9329)

oushiquan 2009-07-28 00:50

想用循环依次去掉向量里面的某些元素
 
想编个程序,找出向量里面最大的值,比较它和各个元素的均值的关系,若大于均值,则去掉...一直循环,这样做是想用格拉布斯准则去掉偏差较大的数据.写了以下程序,但遇到困难,请高手赐教.谢谢.
clear;clc;
A=[11,9,3,4,5]
meanA=mean(A)
[a,b]=size(A)
for i=1:b
[max,Ind]=max(A)
if max>6
A(Ind)=[];
end
end
A

silas_xue 2009-07-28 03:41

回复: 想用循环依次去掉向量里面的某些元素
 
lz 能否把问题再说的详细一些 大家一同讨论一下

slgu 2009-07-28 08:29

回复: 想用循环依次去掉向量里面的某些元素
 
若去掉大于6的数值:
A(A>6)=[]

oushiquan 2009-07-29 19:21

回复: 想用循环依次去掉向量里面的某些元素
 
Grubbs方法

适用于检验多组测量值的一致性和剔除多组测量值中的离群均值;
也可用于检验一组测量值的一致性和剔除一组测量值中的离群均值;
可用于10个以上测量值的检验。
具体方法:
1、将个测量值按大小顺序排列;
2、计算出各测量值的平均值 和标准差S;
3、根据下式计算G值:
G=│可疑值-均值│/标准偏差S

4、根据置信水平和测量数(n)查G值表判断若G计算>G表 舍弃该可疑值。 Grubbs法用于可以分析数据的取舍
1、将分析数据(三个或者以上)升序排列
2、计算均知和标准差
3、作统计量:(均值-最小值)/标准差和(最大值-均值)/标准差
4、上述统计量和临界值比较,大于临界值舍弃;小于临界值保留。
一般用于重复实验数据的处理或者适用于不同实验室对同一样品分结果的处理

**********************************************************
不能用A(A>6)=[] 的方法
因为每次只能去掉一个,比如有10个数据,先用这个准则判断偏差最大哪个数,如果要删掉,那就删掉,剩下9个,这9个数,继续用格拉布斯准则,但注意,这里的平均数已经是9个数的平均数而不是之前那10个数的平均,继续用准则判断....直到满足"G计算<G表"的条件为止.

oushiquan 2009-07-31 10:48

回复: 想用循环依次去掉向量里面的某些元素
 
没有高手会吗?这个问题比较郁闷啊。不能用循环的话要一次次自己导进去啊


所有时间均为北京时间。现在的时间是 03:38

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