plus, MATLAB has "find", which returns a list of all the positions of a matrix matching some pattern. The combination of the two makes things that are very ugly to express in other languages quite pretty.
Too bad it's wicked expensive, proprietary and slow. I quite enjoy the paradigm.
The obscure matrix language IDL has this too via WHERE. It's really nice. This syntax is essential for image processing unless you want to write a bunch of unnecessary for loops.
img[WHERE(img LT 5)] = 0
I built a bunch of sparse image processing algorithms using index lists. Pass in the indices and the values at those locations. Everything else is assumed zero. Sort the index array and you can use binary search to look up neighbors. On my domain images which were less than 2% foreground it made a big difference.
Too bad it's wicked expensive, proprietary and slow. I quite enjoy the paradigm.