detecting 6 ones in a vector
이전 댓글 표시
i need a code to detect 6 consecutive ones in a vector and their places in the vector
댓글 수: 3
jgg
2015년 12월 23일
Image Analyst
2015년 12월 23일
What if there are 10 ones in a row? You could fit 6 in there in a bunch of places. Would you want the only starting index of the run of 10 elements? Would you want all elements that are part of the 10? Or do you just want the 5 starting indices of where a segment of 6 could fit? You need to clarify because these would be three different algorithms.
shimaa ali
2015년 12월 23일
채택된 답변
추가 답변 (1개)
Andrei Bobrov
2015년 12월 23일
편집: Andrei Bobrov
2015년 12월 23일
b = A == 1; % A - your array
t = [true;diff(b)~=0];
n = find(t);
p = [n,diff([n;numel(A)+1])];
out1 = p(A(n)==1,:);
out = out1(out1(:,2)==6,:);
or with Image Processing Toolbox
c = regionprops(A(:) == 1,'BoundingBox');
k = cat(1,c.BoundingBox);
out = ceil(k(k(:,4)==6,[2,4]));
카테고리
도움말 센터 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!