Find intervals in a vector
조회 수: 13 (최근 30일)
이전 댓글 표시
Lets suppose we have the vector A=[0 5 7 8 0 0 0 1 9 6 0 0 1 2]. The goal is to extract the indices of the different intervals inside the vector A and write it in seperate vectors. With intervals I mean the nonzero numbers. So at the end of the code I want the vectors B=(2 3 4) C=(8 9 10) D=(13 14), where the entries are the indices of the intervals (consecutive nonzero numbers) in A.
Is there a possibility to accomplish this task in a general way ?
Thanks
댓글 수: 0
채택된 답변
David Hill
2021년 2월 10일
a=find(A~=0);
b=[0,find(diff(a)>1),length(a)];
for k=2:length(b)
c{k-1}=a(b(k-1)+1):a(b(k));
end
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!