我编写了一个程序来创建一堆二进制数,如下所示:
out = [0,1,1,0,1,1,1,0,0,0,1,0];
Run Code Online (Sandbox Code Playgroud)
我想1在上面一起检查九位数的存在out,例如当我们在输出中有这个时:
out_2 = [0,0,0,0,1,1,1,1,1,1,1,1,1];
Run Code Online (Sandbox Code Playgroud)
要么
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];
Run Code Online (Sandbox Code Playgroud)
condition变量应设置为1.我们不知道out变量的起点的确切位置.这是随机的.我只想在上面的变量中找到重复的值(一次或多次).
PS.
我们正在寻找一个通用的答案来找到其他重复的数字(这里不仅仅是1,而且不仅仅是二进制数据.这只是一个例子)
您可以使用它convolution来解决此类r连续检测案例.
案例#1:1s在二进制数组中查找连续-
check = any(conv(double(input_arr),ones(r,1))>=r)
Run Code Online (Sandbox Code Playgroud)
样品运行 -
input_arr =
0 0 0 0 1 1 1 1 1 1 1 1 1
r =
9
check =
1
Run Code Online (Sandbox Code Playgroud)
案例#2:为了检测任何数字是连续的,你可以稍微修改一下,就像这样 -
check = any(conv(double(diff(input_arr)==0),ones(1,r-1))>=r-1)
Run Code Online (Sandbox Code Playgroud)
样品运行 -
input_arr =
3 5 2 4 4 4 5 5 2 2
r =
3
check =
1
Run Code Online (Sandbox Code Playgroud)
要从进一步的重复中保存Stackoverflow,也可以随意查看相关问题 -