diff toolboxes/FullBNT-1.0.7/KPMtools/nchoose2.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/FullBNT-1.0.7/KPMtools/nchoose2.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,35 @@
+function c = nchoose2(v, f)
+%NCHOOSE2 All combinations of N elements taken two at a time.
+%
+%   NCHOOSE2(1:N) or NCHOOSEK(V) where V is a vector of length N,
+%   produces a matrix with N*(N-1)/2 rows and K columns. Each row of
+%   the result has K of the elements in the vector V.
+%
+%   NCHOOSE2(N,FLAG) is the same as NCHOOSE2(1:N) but faster.
+%
+%   NCHOOSE2(V) is much faster than NCHOOSEK(V,2).
+%
+%   See also NCHOOSEK, PERMS.
+
+%   Author:      Peter J. Acklam
+%   Time-stamp:  2000-03-03 13:03:59
+%   E-mail:      jacklam@math.uio.no
+%   URL:         http://www.math.uio.no/~jacklam
+
+   nargs = nargin;
+   if nargs < 1
+      error('Not enough input arguments.');
+   elseif nargs == 1
+      v = v(:);
+      n = length(v);
+   elseif nargs == 2
+      n = v;
+   else
+      error('Too many input arguments.');
+   end
+
+   [ c(:,2), c(:,1) ] = find( tril( ones(n), -1 ) );
+
+   if nargs == 1
+      c = v(c);
+   end