# scatteredInterpolant function is providing too much noise in interpolation

7 views (last 30 days)
Answered: Bruno Luong on 7 Aug 2022
Hello there.
I have a function V = f(X,Y). Where the mesh on X,Y is non uniform and its boundaries aren't rectangular. I am trying to use scatteredinterpolant function to evaluate Vq = f(Xq, Yq), but MATLAB always provide a lot of noise in the interpolated results, and I am not able to identify the reason.
Please refer to the attached data file for the numerical values of the variables (X,Y,V,Xq,Yq). I am using the following code,
clc
clear
surf(X,Y,V)
h=gca;
xlabel ('X');ylabel ('Y');
zlabel ('V');
set(h,'xscale','log') F = scatteredInterpolant(X(:),Y(:),V(:));
Warning: Duplicate data points have been detected and removed - corresponding values have been averaged.
Vq = F(Xq,Yq);
surf(Xq,Yq,Vq)
h=gca;
xlabel ('Xq');ylabel ('Yq');
zlabel ('Vq');
set(h,'xscale','log') Can anyone tell what is the reason and how can I fix the noise in the results?
Thanks and best,

Bruno Luong on 7 Aug 2022
The problem raises from the fact that scatteredInterpolant use Delaunay triangulation, meaning that X and Y are assumed to have the same unit.
In your case not only they do not have the proper normalization, but it seems X is log scale.
To fix it, you have to transform your variables:
ScaleLogX = 10;
ScaleY = 2000000;
F = scatteredInterpolant(log(X(:))/ScaleLogX,Y(:)/ScaleY,V(:));
Warning: Duplicate data points have been detected and removed - corresponding values have been averaged.
Vq = F(log(Xq)/ScaleLogX,Yq/ScaleY);
surf(Xq,Yq,Vq)
h=gca;
xlabel ('Xq');ylabel ('Yq');
zlabel ('Vq');
set(h,'xscale','log') KSSV on 7 Aug 2022
Edited: KSSV on 7 Aug 2022
Read about griddata. Also explores the methods in these interpolations. Go for the method nearest.
The function griddata produced a very similar noise. I will try to explore different options in each function. Thanks for your comment.

### Categories

Find more on Interpolation in Help Center and File Exchange

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!