If MATLAB thinks the figure is too complicated it will produce an embedded image in the output file, rather than vectorized (editable) content. You can force MATLAB to produce vectorized output by using the -painters option when calling the print command, as in:
print -painters -dpsc output.ps
print -painters -dpdf output.pdf
The output files will then contain vectorized content instead of embedded images.