function theResult = respace(x, x1, x2) % respace -- Re-space values linearly. % respace(x, x1, x2) respaces the values of vector x, % such that the original x1 is moved to x2 and all % the others are correspondingly moved linearly % between the end-points. % Copyright (C) 1999 Dr. Charles R. Denham, ZYDECO. % All Rights Reserved. % Disclosure without explicit written consent from the % copyright owner does not constitute publication. % Version of 23-Apr-1999 13:21:29. % Updated 25-Aug-1999 07:16:00. if nargin < 3, help(mfilename), return, end xmin = min(x(:)); x = x - xmin; xmax = max(x(:)); x = x ./ xmax; x1 = (x1 - xmin); x1 = x1 ./ xmax; x2 = (x2 - xmin); x2 = x2 ./ xmax; i = find(x <= x1); j = find(x > x1); x(i) = x(i) .* x2 ./ x1; x(j) = 1 - (1 - x(j)) .* (1 - x2) ./ (1 - x1); result = x .* xmax + xmin; if nargout > 0 theResult = result; else disp(result) end