To answer your question, yes, you can generate random numbers with single precision, for example:
r = rand(..., 'single'); %Reference: http://www.mathworks.com/help/matlab/ref/rand.html
Numbers with one precision have 7 (ish) significant digits when printed as decimal.
To repeat some of the comments above, I donβt think it will buy you more performance. The first thing to do if rand is really your slow operation is batch call processing. That is, instead of:
for ix 1:1000 y = rand(1,1,'single); end
using:
yVector = rand(1000,1,'single');
source share