How to find the position of a number in an array?
    조회 수: 29 (최근 30일)
  
       이전 댓글 표시
    
I have a column vector Y which is 7306409x1 double. I want to find the position (indices) of a specifric number (8) in Y. I used
k=find(Y==8)
 But MATLAB gives the answer 
k =
0×1 empty double column vector
and does not show the indices. I think the problem is something with the "double". Does anyone know how to solve this?
Thanks!
답변 (2개)
  Matt J
      
      
 2020년 6월 12일
        
      편집: Matt J
      
      
 2020년 6월 12일
  
      There is nothing wrong with your code as long as there are elements in Y that are exactly equal to 8
>> Y=[8 1 2 5 8 6];
>> k=find(Y==8)
k =
     1     5
Suprises may happen, however, if Y contains floating point inaccuracies that you can't see on the screen,
>> Y=[8 1 2 5 8 6] + 10*eps,
Y =
    8.0000    1.0000    2.0000    5.0000    8.0000    6.0000
>> k=find(Y==8)
k =
  1×0 empty double row vector
One solution is to round,
  >> k=find(round(Y)==8)
k =
     1     5
  madhan ravi
      
      
 2020년 6월 12일
        
      편집: madhan ravi
      
      
 2020년 6월 12일
  
      k = find( (abs(Y) - 8) < 1e-2 ) % where 1e-2 is the tolerance
댓글 수: 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!





