Plot 2D surf from 3 columns (X, Y, Data)
77 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I have data disposed in the following way:
The first column rapresents the x coordinates, the second column rapresents the y coordinates and the 3rd column contains the data value at the (x, y) coords.
I can't use the function surf since it required that the 3rd column in disposed as a matrix where every index represents the coorinate.
So I'm looking for a way to convert my 3 columns in a matrix with my data, or plot directly the surface using a function that accepts that format.
Thank you!
0 Kommentare
Antworten (2)
Alan Stevens
am 29 Jul. 2022
Bearbeitet: Alan Stevens
am 29 Jul. 2022
plot3 will plot your points as a line (or series of points).
To get a surface, set up regular coordinates over the appropriate range for cp12x and cp12y, then use meshgrid to get a matrix, then interp2 to interpolate to find appropriate values of your magnetic field at those mesh points.
Then use surf.
0 Kommentare
Star Strider
am 29 Jul. 2022
Bearbeitet: Star Strider
am 29 Jul. 2022
Try something like this —
Tmag = readtable('FileName', 'VariableNamingRule','preserve');
x = Tmag{:,1};
y = Tmag{:,2};
z = Tmag{:,3};
L = size(Tmag,1);
xv = linspace(min(x), max(x), L);
yv = linspace(min(y), max(y), L);
[X,Y] = ndgrid(xv, yv);
Z = griddata(x, y, z, X, Y);
figure
surf(X, Y, Z)
grid on
Also consider adding:
shading('interp')
if the grid points are too dense.
.
.
2 Kommentare
Star Strider
am 29 Jul. 2022
After the surf call, add:
shading('interp')
view(0,90)
That should work.
.
Siehe auch
Kategorien
Mehr zu Colormaps 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!