MATLAB: Minimal variance algorithm. Ideas

categorizeclusteringindexingmathematics

I don't have much experience with developing algorithms but I am considering the following problem: How to divide a set of numbers in N groups, such that the total variance is minimal? So the variance within each group is summed to get total variance.
Is it possible to calculate directly (like thresholding quantiles if I wanted groups of equal size) or does it require an iterative process?
Ive checked the code of rgb2ind but it uses some built-in functionality (cq?), and of course rgb2ind works on points in 3D space. So any help, even a reference to a handy paper or book, is welcome!
Related Question