# How to transfer surf(x,y,z) to a data contains height value?

1 view (last 30 days)
Yu Zou on 18 Jan 2018
Answered: Walter Roberson on 19 Jan 2018
Greeting everyone!
What i have now is 3 Matrix x,y,z, which can be presented by surf(x,y,z).
But i want to transfer these data to one matrix containing height value, which can be presented by surf(f).
Thanks!
Here is my data:
[x,y,z] = sphere; % Makes a 21-by-21 point sphere
x = x(11:end,:); % Keep top 11 x points
y = y(11:end,:); % Keep top 11 y points
z = z(11:end,:); % Keep top 11 z points
r = 3; % r radius value
x=r*x+r;
y=r*y+r; % Move x, y starting from 0
z=r*z; % Change the radius of the dom to r
% so i generate a dom(half ball) with radius 3
##### 2 CommentsShowHide 1 older comment
Yu Zou on 19 Jan 2018
thanks for advice. I want to extract the height from a dom so that i can execute something else, so it's pretty useful for me.

Image Analyst on 18 Jan 2018
Try interp2() to take your coordinates and make a 2-D matrix where the values are the z values.
Yu Zou on 19 Jan 2018
Thanks for advice, i've attached my code

Walter Roberson on 19 Jan 2018
F = scatteredInterpolant(x(:),y(:),z(:));
[X,Y] = ndgrid(1:floor(max(x(:))));
Z = F(X,Y);
surf(Z)
You will find this rather unsatisfactory, but it is the best that can be done while maintaining the axes labels with a simple surf(Z)