WHERE

Syntax: vout = WHERE(vector)

The WHERE function only accepts a vector as argument. It returns the indices where this vector is not equal to zero.

Examples

Suppose you have a vector X = [-5:5] and you enter Y=WHERE(X>0), then Y would be [7;8;9;10;11] since X[Y] > 0. If you enter Y=WHERE(X<=0) then Y would be [1;2;3;4;5;6] since X[Y] ≤ 0.

Suppose you have two vectors X and Y and you want to graph only those points that lie within the unit circle, that is, only those points that satisfy SQRT(X2+Y2) ≤ 1. The following commands produce the picture below.

 GENERATE/RANDOM X -2 2 10000
 GENERATE/RANDOM Y -2 2 10000
 SET PLOTSYMBOL -17
 SET %PLOTSYMBOLSIZE 0.5
 SET AUTOSCALE COMMENSURATE
 IDX=WHERE(SQRT(X^2+Y^2)<=1)
 GRAPH X[IDX] Y[IDX]
 

  IEQUAL