I just use double(). I can't stand im2double with it's unclear "rescaling the data if necessary." feature. Nowhere in the help do they actually explain what that actually means. It seems that when I've used it in the past, sometimes it leaves values the same and other times it scaled everything to the range 0-1. It seemed so inconsistent with no explanation whatsoever of when it will scale and when it won't, and how it does the scaling, so I refuse to use it now. If there's any scaling to be done, I'll do it myself, thank you very much. At least I know what I did. I never use its equally confusing friends either, such as imsubtract(), etc.