2D Interpolation of a scatterplot using xyz values.

I have a 2d scatter plot that I need to interpolate. The values are from an excel sheet and it is a matrix of 3 columns. The first column is the x coordiante, the second is the y coordiante and the third column is the z coordinate. How would I interpolate these data sets on to a 2d scatter plot.
Thanks for the help.

Answers (1)

There are several options, likely the easiest being:
xv = linspace(min(x), max(x), numel(x));
yv = linspace(min(y), max(y), numel(y));
[X,Y] = ndgrid(xv,yv);
Z = griddata(x, y, z, X, Y);
That will create a uniform grid in ‘Z’ that interpolates the original ‘z’ values and can then be plotted as desired.

2 Comments

Hi thanks for the help, I keep on getting this error, Warning: The underlying triangulation is empty - the points may be collinear. How can i fix this?
My pleasure!
How can i fix this?
I cannot determine that without your data. Using the unique function with the 'rows' argument may be a solution, however I cannot determine that with any certainty.

Sign in to comment.

Categories

Find more on Interpolation in Help Center and File Exchange

Asked:

on 9 Mar 2021

Commented:

on 9 Mar 2021

Community Treasure Hunt

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

Start Hunting!