Question: Is there a command working exactly like [Matlab's `find`](http://www.mathworks.com/help/matlab/ref/find.html)?

I know that `Pick` might work, but I just want to give a logic condition to select the elements of a list instead of a particular value.

For instance:

```
T={a, b, c, d, e}
Ctl={2.3, 0, 5, 0, 0}

```

I'd like to pick the elements of `T` for which the corresponding element of `ctl` is greater than 0.

Answer: 
You can find the position/index within an array of all values in a specified interval, (like Matlab's find) using `Position`. For instance:

```
pos = Position[a, _?((0.3 < # < 0.7) &)]

```

or 

```
pos = Position[a, x_ /; (0.3 < x < 0.7)]

```

These find the indices of all elements in `a` with values between 0.3 and 0.7. The elements can be extracted from `a` using

```
Extract[a, pos]

```

For the requested example:

```
t = {a, b, c, d, e};
ctl = {2.3, 0, 5, 0, 0};
pos = Position[ctl, _?((# > 2) &)]
Extract[t, pos]

{{1}, {3}}
{a, c}

```

As suggested by J.M. in the comments, you can also use `Pick`:

```
Pick[t, Thread[ctl > 2]]
{a, c}

```
Just for some ridiculousness (covering some of the give answers):

```
t = {a, b, c, d, e};
ctl = {2.3, 0, 5, 0, 0};

```

Various: 

```
Pick[t, Positive@ctl] (* JM*)
Extract[t, Position[ctl, _?Positive]] (* bill s *)
Cases[Transpose[{t, ctl}], {x_, _?Positive} :> x]
First /@ Select[Transpose[{t, ctl}], #[[2]] > 0 &]
Last@Reap[Sow @@@ (Transpose@{t, ctl}), _?Positive, Sequence @@ #2 &]
True /. GroupBy[Transpose[{t, ctl}], Positive[#[[2]]] & -> First]

```