csvwriteFast( filename, values, format )
>> r = randn( 1e5, 2 );
>> tic, csvwrite( 'r.csv', r ), toc
Elapsed time is 3.945658 seconds.
>> tic, csvwriteFast( 'r.csv', r, '%f,%f' ), toc
Elapsed time is 0.302832 seconds.
another advantage is ability to specify the numerical format for each column separately
i've noticed that this approach is more significant on matrices with low number of columns. For example, it writes matrix with 10 columns merely 3 times faster than csvwrite, while in the example above (2 columns) this factor is over 13.