the Matlab version does not (for example, it has a notion of outliers and
 min-cluster size).  It is also many times faster than matlab's kmeans.
 General kmeans help can be found in help for the matlab implementation of
 kmeans. Note that the although the names and conventions for this
 algorithm are taken from Matlab's implementation, there are slight
 alterations (for example, IDX==-1 is used to indicate outliers).

 IDX is a n-by-1 vector used to indicated cluster membership.  Let X be a
 set of n point