2010-05-17 18 views
7

So che posso creare un grafico superficie 3D in MATLAB facendo:Come si crea un grafico di surf in MATLAB con dati con spaziatura irregolare?

x = linspace(1,10,100); 
y = linspace(10,20,100); 

[X Y] = meshgrid(x,y); 

Z = X * Y; 

surf(X,Y,Z); 

Ma questo richiede che tutti i nodi per l'altezza della mappa linea generata in su. Ho un set di dati che ha punti arbitrari (x, y) e un'altezza (z). C'è un modo semplice per tracciare un grafico che genererà una superficie tra i punti in modo simile a surf?

risposta

9

scusato, dopo un po 'di caccia sono riuscito a rispondere alla mia domanda:

È possibile utilizzare la funzione trisurf:

tri = delaunay(x,y); 
trisurf(tri,x,y,z); 

Se si dispone di dati denso si vuole fare shading interp (o un altro valore , controllare doc shading) in modo da non ottenere un blob nero a causa della griglia.

+2

In realtà, il modo migliore per evitare il blob nero è impostare la proprietà 'edgeColor' su' none'. – Jonas

Problemi correlati