Reference Guide > W Routines > WHEREFIRST Procedure
  

WHEREFIRST Procedure
Standard Library procedure that returns the index of the first 1 in array of 0’s and 1’s.
 
note
For large binary arrays, WHEREFIRST is faster than (WHERE(b))(0).
Usage
WHEREFIRST, b, i
Input Parameters
b — Array containing only 0’s and 1’s.
i — (I/O) Index from which the forward search begins.
Output Parameters
i — (I/O) Index of the first occurrence of 1 in b which is greater than or equal to the input index.
Discussion
Given an array of 0's and 1's and a 1D index i, WHEREFIRST returns the 1D index j of the first 1 such that j i. For large binary arrays (arrays that contain only ones and zeros) WHEREFIRST is much more efficient than using WHERE to find the first nonzero element.
 
note
It is important that the array contain only zeros and ones, otherwise results are unpredictable. For performance reasons, the input array is not checked for invalid values.
Example
i=1
WHEREFIRST,[0,0,0,1,1,0,1,0,1],i
PM, i
Output
3
See Also
WHERE

Version 2017.1
Copyright © 2019, Rogue Wave Software, Inc. All Rights Reserved.