首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找0的连续块的索引

查找0的连续块的索引
EN

Stack Overflow用户
提问于 2016-08-24 03:06:54
回答 1查看 142关注 0票数 2

我有一个向量,我想找到至少连续3次的0块的索引。

代码语言:javascript
复制
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,变成:

代码语言:javascript
复制
[1 1 1 0 1 1 NAN 1 1 1 0 1 0 1 0 0 1 NAN 1 1]    

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 05:43:38

你能做的是:

  1. 每边都用1将矢量压好。
  2. 使用finddiff查找向量从1到0的变化位置(diff = -1)
  3. 使用finddiff查找向量从0到1的变化位置(diff = 1)
  4. 通过将3中的值减去2中的值(并加上1),找出每个间隔的持续时间。
  5. 使用true创建一个持续时间为>= 3的逻辑向量,并使用该向量查找开始索引(从第2点中找到的值)。
  6. 将每个开始索引的值设置为NaN
  7. start indices + 1 : end indices的值设置为[]

你就该走了!

实际上,编写解释要比编写代码花费更多的时间。这是一个很好的练习,学习一些基本的MATLAB,所以我将把它留给你们。祝好运!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39113764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档