function [mat_new] = smooth2(mat_old,stencilx,stencily) %stencil = 2; % check matrix in each direction % mat(x,y) %mat_new=nan(size(mat_old,1),size(mat_old,2)); mat_new = mat_old; for i=1:size(mat_old,1) for j=1:size(mat_old,2) if isnan(mat_old(i,j)) type1=(i-1); type2=abs(i-size(mat_old,1)); type3=(j-1); type4=abs(j-size(mat_old,2)); %adj_stencil=min([stencil type1 type2 type3 type4]); x_min=(i-min([stencilx type1])); x_max=(i+min([stencilx type2])); y_min=(j-min([stencily type3])); y_max=(j+min([stencily type4])); sub_mat = mat_old(x_min:x_max,y_min:y_max); mat_new(i,j) = nanmean(sub_mat(:)); %end % if isnan(mat_old(i,j)) % mat_new(i,j)=NaN; % end end end end end