I recently discovered that, in MATLAB 2013b at least, it is significantly faster to do repeated multiplication rather than integer powers. That is,
tic;test4p = a.^4;toc
is much slower than
tic;test4m = a.*a.*a.*a;toc
See http://www.walkingrandomly.com/?p=5377 for full details. Is there any numerical reason (accuracy etc) why repeated multiplication might be a bad idea?