diff toolboxes/FullBNT-1.0.7/KPMtools/approx_unique.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/approx_unique.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,41 @@
+function [B, keep] = approx_unique(A, thresh, flag)
+% APPROX_UNIQUE Return elements of A that differ from the rest by less than thresh
+% B = approx_unique(A, thresh)
+% B = approx_unique(A, thresh, 'rows')
+
+keep = [];
+
+if nargin < 3 | isempty(flag)
+  A = sort(A)
+  B = A(1);
+  for i=2:length(A)
+    if ~approxeq(A(i), A(i-1), thresh)
+      B = [B A(i)];
+      keep = [keep i];
+    end
+  end
+else
+%   A = sortrows(A);
+%   B = A(1,:);
+%   for i=2:size(A,1)
+%     if ~approxeq(A(i,:), A(i-1,:), thresh)
+%       B = [B; A(i,:)];
+%       keep = [keep i];
+%     end
+%   end
+  B = [];
+  for i=1:size(A,1)
+    duplicate = 0;
+    for j=i+1:size(A,1)
+      if approxeq(A(i,:), A(j,:), thresh)
+	duplicate = 1;
+	break;
+      end
+    end
+    if ~duplicate    
+      B = [B; A(i,:)];
+      keep = [keep i];
+    end
+  end
+end
+