reshape data to fit into surf/contour

41 Ansichten (letzte 30 Tage)
feynman feynman
feynman feynman am 25 Nov. 2024 um 11:05
Kommentiert: feynman feynman am 1 Dez. 2024 um 4:43
nodalPositions is a 2*100 double matrix storing the nodal positions of a PDE on a 2D domain with 100 nodes. x=nodalPositions(1,:) and y=nodalPositions(2,:) are the nodal x and y coordinates. The solution of the PDE, u, is a 1*100 double array. One can plot(x,y,'.') to plot the nodes in a plane or plot3(x,y,u,'.') to plot u in 3-space. How to reshape x, y, u so that one can surf(x,y,u) or contour(x,y,u)?

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 25 Nov. 2024 um 11:12
You cannot do that.
Or,
N = 100;
[minx, maxx] = bounds(x);
[miny, maxy] = bounds(y);
[Xg, Yg] = ndgrid( linspace(minx, maxx, N), linspace(miny, maxy, N));
F = scatteredInterpolant(x(:), y(:), u(:));
Ug = F(Xg, Yg);
surf(Xg, Yg, Ug, 'edgecolor', 'none');
  6 Kommentare
Walter Roberson
Walter Roberson am 30 Nov. 2024 um 21:35
@Stephen23 is right. When y = x then all of the data falls along a single line. Triangulation of a single line fails.
feynman feynman
feynman feynman am 1 Dez. 2024 um 4:43

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by