Making mesh from independent variables

2 次查看(过去 30 天)
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);

回答(2 个)

Chirag Gupta
Chirag Gupta 2011-7-13
How about meshgrid?
[x,y,z] = meshgrid(X,Y,Z); % Where X,Y and Z are vectors
  1 个评论
Ali Y.
Ali Y. 2011-7-13
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',
...

请先登录,再进行评论。


Sean de Wolski
Sean de Wolski 2011-7-13
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 个评论
Sean de Wolski
Sean de Wolski 2011-7-13
it should be
Z1 = reshape(griddata(X(:),Y(:),Z(:),X1(:),Y1(:)),size(X1));
Ali Y.
Ali Y. 2011-7-13
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]);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by