How to find the position of a number in an array?
    31 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
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!
Risposte (2)
  Matt J
      
      
 il 12 Giu 2020
        
      Modificato: Matt J
      
      
 il 12 Giu 2020
  
      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
      
      
 il 12 Giu 2020
        
      Modificato: madhan ravi
      
      
 il 12 Giu 2020
  
      k = find( (abs(Y) - 8) < 1e-2 ) % where 1e-2 is the tolerance
0 Commenti
Vedere anche
Categorie
				Scopri di più su Logical in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





