Making mesh from independent variables

I have three variables as vectors (X,Y,Z). They are Longitude, latitude and Depth, respectively. I wanna create a wireframe mesh form these data. In case of my data the variable Z isn't a function of X and Y (i.e. it's an independent variable form X and Y), I can't get Z as a matrix. How can I make a matrix from vector Z, and grid my data to create mesh or surface? Please help me to write this code.I need it vitally. I tried "mesh" and "griddata", but there is something wrong with my code. Thanks in advance,
X=(44:0.30:49); Y=(34:0.30:39); Z=(rand(1,17))*1000; [X1,Y1]=meshgrid(X,Y);

Answers (2)

How about meshgrid?
[x,y,z] = meshgrid(X,Y,Z); % Where X,Y and Z are vectors

1 Comment

Makes this error
??? CData must be an M-by-N matrix or M-by-N-by-3 array
Error in ==> mesh at 151
hh = graph3d.surfaceplot(x,y,z,'FaceColor',fc,'EdgeColor','flat',
...

Sign in to comment.

doc griddata
doc triscatteredinterp
to get your irregular mesh to a regular one.
Z has to be 17x17 to have a combination for each point in X,Y, it's currently 1x17. Are you sure you don't want:
plot3(X,Y,Z)
?

3 Comments

Yes you are right. The Z is a 1x17 vector. and my problem start here, because unlike the matlab example the Z is not a function of (X,Y), and I can't get help from a function's indices.
About griddata, when I try it on real data like
[X1,Y1]=meshgrid(X,Y)
Z1=griddata(X,Y,Z,X1,Y1)
it makes a tangled lines. Also I sorted(sortrows)the data by X, but it doesn't change it.
No, I need to create surface or wireframe mesh.
it should be
Z1 = reshape(griddata(X(:),Y(:),Z(:),X1(:),Y1(:)),size(X1));
Sorry, still the same tangled lines (in real data). Though, in the code which I have written for you, it cause "precision problems" in making "Delaunay triangulation" and makes these error.
========================================
??? Error using ==> qhullmx
Error in ==> delaunayn at 117
t = qhullmx(x', 'd ', opt);
and
Error in ==> griddata>linear at 151
tri = delaunayn([x y]);

Sign in to comment.

Asked:

on 13 Jul 2011

Community Treasure Hunt

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

Start Hunting!