rgb2ind() will come up with some kind of color classification and give you the classified image back. Then each class (index) can be shown as a color. This is a completely different concept than what label2rgb does. That takes a labeled image, which is a binary image of segmented blobs that's been run though bwconncomp() or bwlabel(), and then colors each class (label) with a unique color. They're TOTALLY different things. And I'm not sure what thing you want.
Do you want to take a full color image and quantize it down into a small number of representative colors? If so, use rgb2ind().
Do you want to take a grayscale image, segment it to find certain interesting blobs/regions in the image (like person, wall, and floor), and then give each one of those regions a unique color? If so, use normal segmentation and classification techniques to produce a segmented/classified image and then label it so that each region gets a unique ID number, like person = 1, wall = 2, and floor = 3. Then use label2rgb() to assign colors to those regions.
Again, different concepts. What do you want to do?