reps = 100000; k = 2; maxval = 3; singular = 0; for i=1:reps a = 2*rand(k,k) - 1; a = a * maxval; a = round(a); singular = singular + (rank(a) < k); endfor singular/reps