function xnew = r_adapt(x,eta_elem) N = length(x); w = abs(eta_elem) + 1e-10; %error based monitor function s = zeros(N,1); for i = 2:N s(i) = s(i-1) + w(i-1); %cumulative sum % LP % s(i) = s(i-1) + w(i); %cumulative sum % GH end s = s / s(end); % normalize to [0,1] s_new = linspace(0,1,N)'; xnew = interp1(s, x, s_new, 'linear'); end