用NaN替换表中的陈旧/重复数据

3次浏览(过去30天)
贾斯汀•贝尔
贾斯汀•贝尔 2021年9月24日
回答: KSSV 2021年9月24日
我在时间表中有大约10个变量的数据。有时,数据源会“停止”,只是继续输出最后一个值,而不是在特定列中输出新的数据。时间戳和一些列将正确更新。我想做的是用NaN替换陈旧的/重复的值。当我需要其他列时,我不能仅仅删除这一行。当数据良好时,就不会出现相同值在一行中重复两次或多次的情况。
输入例子
数据。Var1 = [3, 2, 5, 4, 4, 4, 4, 6, 2, 3,5,5,5,5]
期望输出值
数据。Var1 = [3, 2, 5, 4, NaN, NaN, NaN, 6, 2, 3, 5, NaN, NaN, NaN]
我看到了一些以前的文章(//www.tatmou.com/matlabcentral/answers/216921-need-to-remove-repeated-adjacent-elements-in-an-array?s_tid=srchtitle),但我努力工作对我的需要修改它,因为这将值,一旦我把南测试并不知道在过去良好的价值。
如果新版本或工具箱中有一个函数,我会考虑升级。

接受的答案

KSSV
KSSV 2021年9月24日
Var1 =[3、2、5、4、4、4、4、6,2,3,5,5,5,5];
% Var1 = [3, 2, 5, 4, NaN, NaN, NaN, 6, 2, 3, 5, NaN, NaN, NaN]
if (diff(Var1)==0)+1;
Var1 (idx) =南
Var1 = 1×14
3 2 5 4楠楠楠6 2 3 5楠楠楠

答案(1)

默罕默德·萨米
默罕默德·萨米 2021年9月24日
你可以试试这个。
Var1 =[3、2、5、4、4、4、4、6,2,3,5,5,5,5];
i = Var1(2:end) == Var1(1:end-1);
I = [false I];
Var1 (i) = NaN
Var1 = 1×14
3 2 5 4楠楠楠6 2 3 5楠楠楠

下载188bet金宝搏


释放

R2020a

社区寻宝

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

开始狩猎!