How to plot a surface not sampled on a gid/mesh

2 次查看(过去 30 天)
Hi
Is there a function that could plot a 2D surface defined on non meshed points ?
In other words, if I have a surface defined by three one dimension vectors X,Y,Z how could I plot it ?
% generate a surface Z=f(x,y)
[X,Y] = meshgrid(linspace(0,10,40),linspace(0,10,40));
Z = sin(X) + cos(Y);
pcolor(X,Y,Z);% works great
pcolor(X(:),Y(:),Z(:)); % error
pcolor(reshape(X,4,[]),reshape(Y,4,[]),reshape(Z,4,[]));
%last one:not the result I hope for, I would like to get the same image as
%pcolor(X,Y,Z)
I know that I could create a mesh manually and interpolate on this mesh (as shown here (as shown here http://matlab.izmiran.ru/help/techdoc/visualize/chbuild7.html ) but I don't like this option as my mesh might not include the data points and give me a false sense of having a the surface sampled well enough because of the interpolation.
Thanks

采纳的回答

Chunru
Chunru 2023-7-4
% generate a surface
X = rand([1000 1])*2*pi;
Y = rand([1000 1])*2*pi;
Z = sin(X) + cos(Y);
% trianglation
tri = delaunayn([X Y]);
trisurf(tri, X, Y, Z)

更多回答(0 个)

类别

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

标签

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by