我有一个向量,我想找到连续至少3次的0的块的索引.
y = [1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1];
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,块应该是[0 0 0]从7-9和[0 0 0 0]从20-23.输出应该给我索引,如[7,9]和[20,23],甚至更好,将这些0的块更改为单个NAN成为:
[1 1 1 0 1 1 NAN 1 1 1 0 1 0 1 0 0 1 NAN 1 1]
Run Code Online (Sandbox Code Playgroud)
谢谢!
你能做的是:
1在每一侧填充矢量.find和diff查找向量从1变为0的位置(diff = -1)find和diff查找向量从0变为1的位置(diff = 1)true持续时间的逻辑向量>= 3,并使用该向量来查找起始索引(来自第2点中的值).NaNstart indices + 1 : end indices来[].你准备好了!
实际上,编写解释所花费的时间比编写代码花费的时间多得多.学习一些基本的MATLAB是一个非常好的练习,所以我会留给你.祝好运!