How to remove 5&95 percent outliers by column independently

조회 수: 1 (최근 30일)
Mekala balaji
Mekala balaji 2017년 9월 20일
답변: Walter Roberson 2017년 9월 20일
Hi,
I have below data, and want to remove outliers by column independently,
vector:
0.2 2 5
1 4 6
2 0.3 17
2 4 9
40 5 36
3 0.3 54
I use the below function, but it can only be used for column array. How to use for the matrix?
percntiles = prctile(vector,[5 95])
outlierIndexes = vector < percntiles(1) | vector > percntiles(2);
outliers = vector(outlierIndexes)
nonOutliers = vector(~outlierIndexes)
  댓글 수: 2
Walter Roberson
Walter Roberson 2017년 9월 20일
Do you want to leave "holes" in the array, or do you want to replace the outliers with 0 or with NaN ?
Mekala balaji
Mekala balaji 2017년 9월 20일
replace outliers with NaN.

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

답변 (1개)

Walter Roberson
Walter Roberson 2017년 9월 20일
Take the per column low percentile which gets you a row of values. Replicate into as many rows as the original. Compare to the original, getting out a logical matrix. Do the same with the high percentile, getting a second logical matrix. Or the two. Now use that as a mask to assign nan to those locations

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by