有可能编写一个代码检查和分析,数据向量有100值,因此认识到,如果一个或两个很高相比其他数据吗?

2视图(30天)
让说我有
a = 25[1 2 1 1 2 1 2 1 23] % 2异常高值
b =[3 2 1 1 2 3 1 2 1 2] %正常数据
我希望处理任何向量的数据但是我的代码应该首先检查数据包含任何异常高值或不呢?如果它包含“山峰”,那么它应该首先移除山顶然后块数据
如果我使用“a”向量,我们看到,也比其他数据值值是非常高的,我可以找到maximam“a”通过
c = max() %的答案将25
d = c / 2;%回答12.5或12
(> d) = 2%替换所有数量大于12 2。
在这种情况下,问题解决。
如果t = 0:0.1:10
我可以用阴谋(t)
但如果数据收到像“b”向量上面显示它附近的所有值约然后马克斯公式不能适用于情节一样。
请指导我怎么能发展这种逻辑? ? ?所以单一代码应该为这两种类型的数据,实际上如果我解决一个阈值像“12”对于每一个数据,可能会收到向量b =[100 102 97 500 111 107 98]或[[100 102 97 110 111 107 98]现在我们必须处理相同的方式但是阈值将会失败。

接受的答案

弗拉基米尔•Sovkov
弗拉基米尔•Sovkov 2020年10月15日
编辑:弗拉基米尔•Sovkov 2020年10月15日
这就是所谓的定位异常值的问题。提出了各种方法。例如,一个基于平均绝对偏差(疯狂的标准)被证明是相当有效和鲁棒性。看到 https://eurekastatistics.com/using-the-median-absolute-deviation-to-find-outliers/ 和引用。
3评论

登录置评。

答案(1)

图像分析
图像分析 2020年10月15日
有几个“离群值”功能像isoutlier (), rmoutliers (), filloutliers ()。试试这个:
a = 25 [1 2 1 1 2 1 2 1 23]% 2异常高值
b = [3 2 1 1 2 3 1 2 1 2]%正常数据
aFixed = rmoutliers (a)%去除25 - 23所示
bFixed = rmoutliers (b)%没有变化,因为没有离群值。
你会看到
一个=
1 2 1 1 2 25 1 2 1 23
b =
3 2 1 1 2 3 1 2 1 2
aFixed =
1 2 1 1 2 1 2 1
bFixed =
3 2 1 1 2 3 1 2 1 2
12个评论
图像分析
图像分析 2020年10月18日
是的,谢谢弗拉基米尔。的确,主要的奖励是升值,你帮助的人。还有其他奖励。贡献,我们希望看到你的名字旁边的一颗冉冉升起的明星或MVP图标最终(如果人们接受或投票支持你的答案)。✨✨✨✨
这个论坛的另一个不错的好处是学习所有与每个版本添加的新功能。我不得不承认,我不读或记得出来一年两次的发布说明每一个新版本,所以大部分我了解新功能 从这个论坛

登录置评。

类别

找到更多的在历史竞赛帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!