Azzera filtri
Azzera filtri

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

2 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Chunru
Chunru il 4 Lug 2023
% 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)

Più risposte (0)

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by