我编写了一个程序来创建一堆像这样的二进制数:
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,而且不仅仅是二进制数据。这只是一个例子)
答案 0 :(得分:7)
您可以使用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,也可以随意查看相关问题 -