Understanding how to use the function griddata

11 views (last 30 days)
graph = xlsread('Path3.xlsx');
x=graph(:,1);
y=graph(:,2);
z=graph(:,3);
[X,Y]= meshgrid(x,y);
Z = griddata(x,y,z,X,Y);
A = mesh(X,Y,Z);
hold on
surf(A);
hold off
xlabel('x'),ylabel('y'),zlabel('z'),title('title')
I have an excel file which I have imported with latitude, longitude and elevation in 3 columns. I'm trying to use the function meshgrid with the latitude and longitude values, and then the function griddata to fit the elevation data points to the meshgrid to develop a surface plot for latitude, longitude, and elevation. I keep getting the following two errors:
Error using surf (line 71)
Z must be a matrix, not a scalar or vector.
Error in (line 49)
surf(A);
>>
  3 Comments
Stephen23
Stephen23 on 5 Apr 2020
Original function by Paul Ramirez, from Google Cache:
"Understanding how to use the function griddata"
graph = xlsread('Path3.xlsx');
x=graph(:,1);
y=graph(:,2);
z=graph(:,3);
[X,Y]= meshgrid(x,y);
Z = griddata(x,y,z,X,Y);
A = mesh(X,Y,Z);
hold on
surf(A);
hold off
xlabel('x'),ylabel('y'),zlabel('z'),title('title')
I have an excel file which I have imported with latitude, longitude and elevation in 3 columns. I'm trying to use the function meshgrid with the latitude and longitude values, and then the function griddata to fit the elevation data points to the meshgrid to develop a surface plot for latitude, longitude, and elevation. I keep getting the following two errors:
Error using surf (line 71)
Z must be a matrix, not a scalar or vector.
Error in (line 49)
surf(A);
>>

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Apr 2020
graph = xlsread('Path3.xlsx');
x=graph(:,1);
y=graph(:,2);
z=graph(:,3);
[X,Y]= meshgrid(x,y);
Z = griddata(x,y,z,X,Y);
surf(X, Y, Z); %includes edges such as would be drawn by mesh()
xlabel('x'),ylabel('y'),zlabel('z'),title('title')

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!