我有一个向量,我想找到至少连续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];因此,在这种情况下,块应该从7-9为0 0 0,从20-23为0 0 0。输出应该给我一些指数,比如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] 谢谢!
发布于 2016-08-24 05:43:38
你能做的是:
1将矢量压好。find和diff查找向量从1到0的变化位置(diff = -1)find和diff查找向量从0到1的变化位置(diff = 1)true创建一个持续时间为>= 3的逻辑向量,并使用该向量查找开始索引(从第2点中找到的值)。NaNstart indices + 1 : end indices的值设置为[]。你就该走了!
实际上,编写解释要比编写代码花费更多的时间。这是一个很好的练习,学习一些基本的MATLAB,所以我将把它留给你们。祝好运!
https://stackoverflow.com/questions/39113764
复制相似问题