This is a question with many possible answers. Below is a list of tips from various users/developers:

  • Save in *.EPS (these can be easily edited in e.g. Adobe Illustrator)
  • Use the function saveSameSize from the Mathworks File Exchange. This function saves the the figure like it looks on-screen.
  • Use the function export_fig from the Mathworks File Exchange for advanced saving options.
  • When processing an export *.EPS in Abode Illustrator, remember the following things/bugs about Matlab's figure exports:
    1. Matlab usually creates invisible 'boxes/objects' around plot-elements like axes, text, etc. To make it easier to work with the objects that are actually important, delete all these superfluous and invisible objects by selecting everything (ctrl+a), or selecting 'empty space' and deleting the ones that contain none of the elements that you want, or look unimportant (there are ALWAYS many of these annoying objects). A 'clean' figure is always easier for a Journal copy-editor to work with.
    2. Matlab usually creates white squares as background of axes, deleting these makes handling the plots a lot easier.
    3. In a regular plot(x,y) figure, many additional x,y-axes are often placed on top of each other and are 'invisible' which makes foreground/background transfers problematic, delete these x,y-axes.
    4. When plotting several lines in as plot(x,y,etc), the output is usually read as a 'grouped' object by Illustrator. Ungrouping these objects (i.e. right click –> ungroup) makes handling/editing these lines much easier.
    5. Whenever you notice that elements of plots were not exported as objects, but as horizontal bars of a bitmap image, or anything else that is weird, it is usually a Matlab openGL bug. Doing set(gcf,'renderer','painters') usually fixes this.