Creating a 3d surface plot
29 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Reed
am 25 Mär. 2011
Beantwortet: Shivam Anand
am 11 Mai 2022
I have several x,y coordinates and an associated z-value for each x,y coordinate set. I would like to generate a 3d plot of these points, preferably with a mesh-like surface but am having trouble setting it up. I currently have three Nx1 vectors, one for the x-coordinates, one for the y-coordinates, and one for the z-values. How would I go about setting this plot up? The x,y coordinates are not in a nice rectangular grid, so meshgrid hasn't worked for me so far. Thanks, Reed
0 Kommentare
Akzeptierte Antwort
Matt Tearle
am 26 Mär. 2011
TriScatteredInterp Here's an example (taken from the doc):
% Make some fake vector data
x = rand(100,1)*4-2;
y = rand(100,1)*4-2;
z = x.*exp(-x.^2-y.^2);
% Put data onto a grid
[qx,qy] = meshgrid(linspace(min(x),max(x)),linspace(min(y),max(y)));
F = TriScatteredInterp(x,y,z);
qz = F(qx,qy);
surf(qx,qy,qz)
0 Kommentare
Weitere Antworten (2)
the cyclist
am 25 Mär. 2011
You will probably be well served by some combination of the following commands:
- griddata
- meshgrid
- plot3
- triscatteredinterp
- mesh
- surf<li>
0 Kommentare
Shivam Anand
am 11 Mai 2022
x=[32 20 67 1 98 34 57 65 24 82 47 55 8 51 13 14 18 30 37 39 10 33 21 26 38 81 83 60 95 22 17 5 72 46 99 52 12 25 96 29 70 85 43 69 19 78 97 31 89 53 2 91 48 71 61 15 36 84 94 50 11 80 6 7 49 74 9 88 40 79 27 68 73 64 63 59 86 23 35 58 45 28 100 42 93 87 16 90 41 66 54 92 77 4 62 76 75 56 3 44];
y=[96 75 24 9 83 49 27 77 3 23 17 31 40 13 7 52 51 21 98 47 64 79 78 91 44 16 15 100 84 99 63 68 70 30 54 76 97 73 33 5 88 8 71 66 62 25 60 42 72 45 18 11 28 59 89 65 10 55 69 81 12 26 20 95 87 41 74 50 93 22 43 90 14 34 82 35 56 38 80 32 1 57 6 36 37 61 29 58 2 48 4 46 67 53 92 86 94 19 39 85];
z=[55 31 11 45 83 36 86 49 15 57 42 46 8 94 88 47 54 81 98 41 32 35 56 85 9 89 37 60 23 62 67 100 78 76 73 80 10 20 68 34 77 93 1 63 53 12 22 99 91 40 84 24 33 3 43 19 92 97 6 82 64 25 26 79 95 4 44 58 5 21 70 29 65 87 96 90 51 14 18 2 72 28 71 39 52 7 27 59 50 61 48 30 66 69 17 13 74 16 75 38];
xlin = linspace(min(x), max(x), 100);
ylin = linspace(min(y), max(y), 100);
[X,Y] = meshgrid(xlin, ylin);
% Z = griddata(x,y,z,X,Y,'natural');
% Z = griddata(x,y,z,X,Y,'cubic');
Z = griddata(x,y,z,X,Y,'v4');
mesh(X,Y,Z)
axis tight; hold on
plot3(x,y,z,'.','MarkerSize',15)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!