在二进制向量中搜索3个或更多连续的并返回其位置

时间:2014-12-15 15:08:18

标签: matlab row

我有一个尺寸为24x1的向量A。向量元素随机分配1,0,代码如下:

A=randi([0 1],n,1);.

我想创建一个代码,这样我就可以连续搜索三个或更多1的向量,并返回一行的索引。

1 个答案:

答案 0 :(得分:1)

这将为您提供每次运行m=3 start 的索引:

m = 3;
ind_start = find(conv(A, ones(1,m), 'valid')==m);

因此,您希望的结果是(向每个索引添加01,... m-1并删除重复项:)

ind = unique(reshape(bsxfun(@plus, ind_start, 0:m-1), 1, []));