You can use interp2 to find intermediate values ββin the same grid size for visualization purposes
step = 0.1; % granularity [xn,yn] = meshgrid(1:step:5); % define finer grid zn = interp2(x,y,z,xn,yn); % get new z values surf(xn,yn,zn);

Please note that you will get the closest approximation to the original kernel using the default linear interpolation method, i.e. interp2(x,y,z,xn,yn,'linear') . Using other methods will lead to the use of smoother cores, but their three-dimensional shape will be different. It depends on your use and application.
Update :
You can bypass the incorrect up-sampling problem with a much higher resolution (reverse reconstruction is possible only if the hypothetical "downsampling" takes into account the Nyquist sampling rate), trying to bring your data closer to the known core, which can then be tuned.
For example, since you give an example of a symmetric core that decays isotopically around a maximum value, you can use the Gauss function. MATLAB does this through the fspecial function.
Suppose that the main function (for example, Gaussian) uses parameters determined from your current kernel (for example, fitting the function to your data).
% use max location, amplitude and std from your kernel max_z = max(z(:)); std_z = std(z(:)); % Set of tunable parameters (size of grid & granularity) bounds_grid = [30 30]; grid bounds step = 0.5; % resolution % Grid siz = (bounds_grid-1)/2; [x,y] = meshgrid(-siz(2):step:siz(2),-siz(1):step:siz(1)); % Gaussian parameters s = std_z; m = 0; % Analytic function g = exp(-((xm).^2 + (ym).^2)/(2*s*s)); g(g<eps*max(g(:))) = 0; g = max_z*g./max(g(:)); surf(g);
Thus, you respect the kernel parameters in a Gaussian fraction, but control the grid size and resolution of the final Gaussian kernel.
Some examples:
