MATLAB: Combine elements of a large vector in matlab

combine

I need to take pairwise combination of a large vector v (770×1). The commands combnk and combntns come with a precaution that they are slow for large vectors.
>> tic, a = combnk(v,2); toc
Elapsed time is 3.081594 seconds.
>> tic, a = combntns(v,2); toc
Elapsed time is 3.147092 seconds.
Is there any other alternative that is more efficient?

Best Answer

>> tic, A = nchoosek(1:770,2); toc
Elapsed time is 2.286846 seconds.
>> tic, B = combnk(1:770,2); toc
Elapsed time is 2.299141 seconds.
>> tic, C = combinator(770,2,'c','no'); toc
Elapsed time is 0.019995 seconds.
>> isequal(sortrows(A),sortrows(B),sortrows(C))
ans =
1
COMBINATOR is found here: File Exchange File.