こちら、最速の方法かどうかは不明ですが、getframeで取得し、imwriteにすると約0.1秒になり、私のPCでは他の方法の3倍ほどになりましたがいかがでしょうか。
figA = figure( ) ;
plot( (0:0.01:4) , sin((0:0.01:4)) , 'b-' ) ;
pause(3)
tic
saveas( figA , [ 'ImageTest1' '.jpg' ] ) ;
toc
tic
saveas( figA , [ 'ImageTest2' '.png' ] ) ;
toc
tic
print( [ 'ImageTest3' ],'-djpeg') ;
toc
tic
print( [ 'ImageTest4' ],'-djpeg','-r100') ;
toc
tic
print( [ 'ImageTest5' ],'-dpng') ;
toc
tic
print( [ 'ImageTest6' ],'-dpng','-r100') ;
toc
tic
I=getframe(gcf);
imwrite(I.cdata,'imagetest7.jpg')
toc