/ / Sovrappone i punti dati che costituiscono una matrice di trama del contorno sullo stesso grafico in MATLAB - matlab, trama, matlab-figura, contorno, contorno

Sovrapponi i punti dati che compongono una matrice di trama del contorno sullo stesso grafico in MATLAB - matlab, trama, matlab-figura, contorno, contorno

Spero che il titolo abbia fornito una descrizione adeguata del mioproblema. Fondamentalmente, sto generando un grafico di contorno in MATLAB usando la funzione contour (x, y, z), dove xey sono vettori di lunghezze diverse e z è una matrice di dati con dimensioni di x volte y. La trama del contorno va bene, tuttavia, sto cercando di sovrapporre questo grafico con i punti dati effettivi dalla matrice z. Ho provato a utilizzare la funzione di dispersione, ma ricevo un messaggio di errore che mi informa che X e Y devono essere vettori della stessa lunghezza, che invece non sono. C'è un altro modo per raggiungere questo obiettivo?

Grazie in anticipo per qualsiasi aiuto / suggerimento!

risposte:

1 per risposta № 1

credo meshgrid dovrebbe aiutarti.

z = peaks;               %// example 49x49 z data
x = 1:20;
y = 1:49;
z = z(y,x);              %// make dimensions not equal so length(x)~=length(y)
[c,h] = contourf(x,y,z);
clabel(c,h); colorbar;

[xx,yy]=meshgrid(x,y);   %// this is what you need
hold on;
plot(xx,yy,"k.");        %// overlay points on contourf

Avviso plot basta invece scatter. Se insisti, scatter(xx(:),yy(:),10), ad esempio, fa il trucco. Anche se il mio esempio non è particolarmente interessante, si spera che si possa iniziare verso ciò che si sta andando esteticamente.

punti sopra il contorno