See sequences in array
    조회 수: 1 (최근 30일)
  
       이전 댓글 표시
    
I have this array
    A = {1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1}
I want to get only the beginning and the end of the 1's sequence and get something like this
    A = {1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1}
Any idea of how can I do it ?
댓글 수: 1
  Guillaume
      
      
 2018년 7월 20일
				Please use proper matlab syntax in your example:
A = [1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1]
채택된 답변
  Guillaume
      
      
 2018년 7월 20일
        A = [1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1]
A([false, all([A(1:end-2); A(2:end-1); A(3:end)] == 1), false]) = 0  %replace all 1s in between between two 1s by 0
Or since it doesn't matter if you replace a 0 by a 0:
A([false, all([A(1:end-2); A(3:end)] == 1), false]) = 0   %replace any value between two 1s by a 0
댓글 수: 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!