Daniel@0: function p = approxeq(a, b, tol, rel) Daniel@0: % APPROXEQ Are a and b approximately equal (to within a specified tolerance)? Daniel@0: % p = approxeq(a, b, thresh) Daniel@0: % 'tol' defaults to 1e-3. Daniel@0: % p(i) = 1 iff abs(a(i) - b(i)) < thresh Daniel@0: % Daniel@0: % p = approxeq(a, b, thresh, 1) Daniel@0: % p(i) = 1 iff abs(a(i)-b(i))/abs(a(i)) < thresh Daniel@0: Daniel@0: if nargin < 3, tol = 1e-2; end Daniel@0: if nargin < 4, rel = 0; end Daniel@0: Daniel@0: a = a(:); Daniel@0: b = b(:); Daniel@0: d = abs(a-b); Daniel@0: if rel Daniel@0: p = ~any( (d ./ (abs(a)+eps)) > tol); Daniel@0: else Daniel@0: p = ~any(d > tol); Daniel@0: end Daniel@0: