我编写了一个程序来创建一堆二进制数,如下所示:
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,而且不仅仅是二进制数据.这只是一个例子)
您可以使用它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.