当前位置:  开发笔记 > 编程语言 > 正文

检测连续数字 - MATLAB

如何解决《检测连续数字-MATLAB》经验,为你挑选了1个好方法。

我编写了一个程序来创建一堆二进制数,如下所示:

out = [0,1,1,0,1,1,1,0,0,0,1,0];

我想1在上面一起检查九位数的存在out,例如当我们在输出中有这个时:

out_2 = [0,0,0,0,1,1,1,1,1,1,1,1,1];

要么

out_3 = [0,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0];

condition变量应设置为1.我们不知道out变量的起点的确切位置.这是随机的.我只想在上面的变量中找到重复的值(一次或多次).

PS.

我们正在寻找一个通用的答案来找到其他重复的数字(这里不仅仅是1,而且不仅仅是二进制数据.这只是一个例子)



1> Divakar..:

您可以使用它convolution来解决此类r连续检测案例.

案例#1:1s在二进制数组中查找连续-

check = any(conv(double(input_arr),ones(r,1))>=r)

样品运行 -

input_arr =
     0     0     0     0     1     1     1     1     1     1     1     1     1
r =
     9
check =
     1

案例#2:为了检测任何数字是连续的,你可以稍微修改一下,就像这样 -

check = any(conv(double(diff(input_arr)==0),ones(1,r-1))>=r-1)

样品运行 -

input_arr =
     3     5     2     4     4     4     5     5     2     2
r =
     3
check =
     1

要从进一步的重复中保存Stackoverflow,也可以随意查看相关问题 -

    Fast r-contiguous matching (based on location similarities).

    r-contiguous matching, MATLAB.


@ user2991243这改变了很多东西.考虑将其作为单独的问题发布?
推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有