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