如何删除超过K连续NaN值行矩阵

6视图(30天)
我有一个行向量如下:
x =[2 5南南8 11 5 9 12南南南南南南4 2 1 16南南南南南南6南南南南南南)
我们说k = 2
所以,我想要删除如果超过2个NaN,所以上面的输出行矩阵必须是这样的:
x_new =[2 5南南8 11 5 9 12 4 2南南16 1南6]
提前谢谢你的帮助

接受的答案

KSSV
KSSV 2021年6月1日
x =[2 5南南8 11 5 9 12南南南南南南4 2 1 16南南南南南南6南南南南南南);
idx = isnan (x);
idr = diff(找到([1 diff (idx) 1]));
D = mat2cell (x '、印尼盾、大小(x, 1));
%去除两南多的
i = 1:长度(D)
如果任何(isnan (D{我}))& & (D{我})长度> 2
D{我}= [];
结束
结束
我希望= cell2mat (D)”
我希望= 1×17
2 5南南8 11 5 9 12 4 2南南16 1南6

答案(1)

罗
2021年6月1日
编辑: 2021年6月1日
K = 2;
x =[1、2、3、4、南南南,7,8,9);
指数= strfind (isnan (x),真正的(1,K + 1));
x(索引)= [];
根据下面的评论(编辑)
3评论
Yared丹尼尔
Yared丹尼尔 2021年6月1日
清晰的
关闭所有
clc
K = 2;
x =[2 5南南8 11 5 9 12南南南南南南4 2 1 16南南南南南南6南南南南南南);
指数= strfind (isnan (x),真正的(1,K + 1));
x(索引)= [];
我得到了followiing把
[2 5南南8 11 5 9 12南南4 2 1 16南南南南南6南南),但这将是:
(2 5南南8 11 5 9 12 4 2南南16 1南6]

登录置评。

社区寻宝

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

开始狩猎!