Hi,
I have below data:
1.02
1.06
1.10
1.06
1.02
1.05
1.12
1.50
1.01
I want to filter-out the data which is >1sigma values (if 1sigma is standard in Matlab, using that function), if there is no such standard, then 1sigma is by 1sigma mean value.
my desired output:
1.02
1.06
1.10
1.06
1.02
1.05
1.01

답변 (1개)

Star Strider
Star Strider 2017년 9월 18일

0 개 추천

I can’t produce your desired output, since that does not match the criterion of data being less than 1 standard deviation of the mean:
v = [1.02
1.06
1.10
1.06
1.02
1.05
1.12
1.50
1.01];
vm = mean(v);
vs = std(v);
v_result = v(v < vm+vs);
The mean+std value is 1.2573, so only 1.50 fails to meet the criterion.

댓글 수: 3

Mekala balaji
Mekala balaji 2017년 9월 18일
if we just only based on 1sigma mean? does it make sense according to you?
Mekala balaji
Mekala balaji 2017년 9월 18일
I also want the row index of outliers
If you set 1 sigma (standard deviation) as the criterion, then none are acceptable, since the standard deviation is 0.1528. All the values are above that.
The row index of the outliers is easy:
outlier_idx = find(v >= vm+vs);

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

질문:

2017년 9월 18일

댓글:

2017년 9월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by