Si può, in qualche modo eliminare "+0", ma non si può (per ovvie ragioni) eliminare "-0"; mi domando quindi quale sia l'utilità di eliminare "+0".
Ad ogni modo, una possibile soluzione, un po' contorta, potrebbe essere:
a=2.3e3
str=sprintf('%5.2g',a)
strrep(str,'e+0','e')
fprintf(fp,'%s\n',str)
Disclaimer: ATTENZIONE !!! la soluzione proposta va testata con un insieme più consistente di numeri (non solo quello dell'esempio) e potrebbe non funzionare in tutti i casi
Hope this helps.