的意思是之前和之后的一个特定的元素的值

6视图(30天)
我有一个400行和colmun数组,所有元素值高于1500。然而,我有一些元素值< 50这是错误的措施,我想要的均值元素之前和之后错误的测量数据点和替换它在主数组
情况,元素17数量低于50所以我想取元素的意思是16和18,换上新元素17的意思。
谁能帮我请。

接受的答案

默罕默德·萨米
默罕默德·萨米 2021年6月29日
编辑:默罕默德·萨米 2021年6月29日
如果你有更多然后R2017a Matlab版本,您可以使用filloutliers或者你可以将无效值替换为南然后使用fillmissing。您可以使用“线性”的方法来取代ouliers /缺失值,这本质上是将邻近值填入异常值的均值/缺失值。
%生成测试数据
一个=兰迪((1000 2000),1400);
(randperm(400, 10)) =兰迪(50 [1],1 10);
散射(1:400)
i = < = 50;
b = filloutliers (a,“线性”,“的意思是”);
散射(1:400、b[],我,“填充”);
colormap飞机;
c =;
c (i) =南;
c = fillmissing (c,“线性”);
散射(1:400 c[],我,“填充”);
colormap飞机;
1评论
新奥集团毛拉
新奥集团毛拉 2021年6月29日
成功了! ! !谢谢好友!我真的感激你的帮助

登录置评。

答案(1)

马修•诺伊
马修•诺伊 2021年6月29日
你好,请参见下面的代码:
clc
clearvars
%虚拟数据
x = 1:1:400;
y = 1500 + 50 *兰德(1400);
y (40) = 35;%的第一个例外(单值)
y (60:66) = 45;%的第二个局外人(多个值)
易= y;%保持跟踪初始y数据(图)
all_idx = 1:长度(x);
% outlier_idx = abs (y - (y)中位数)> 2 *性病(y);%发现离群值idx
outlier_idx = y < 50;%发现离群值idx
y (outlier_idx) = [];%去除离群值的数据集
y = interp1 (all_idx (~ outlier_idx), y, x);%替代通过插值数据异常值
图(1)中,情节(x,咦,x, y);

类别

找到更多的在数据类型转换帮助中心文件交换

社区寻宝

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

开始狩猎!