2016-12-26 3 views
2

Ich habe ein 3D-Diagramm erzeugt, das der Gaußschen Verteilung ähnelt, mit Zufallsvariablen Y, X1 und X2 (1000x1) Vektoren. Y ist auf der vertikalen Achse, X1 und X2 sind horizontal.Gaußsches Konturdiagramm von 3 Variablen - MATLAB

Insbesondere ist dies der Code, den ich für das Grundstück verwendet:

plot3(x(:,1),x(:,2),y,'.') 

Die Grafik, die erstellt wurde, um dieses Formular hat:

3D - Gaussian

Was ich möchte auch etwas produzieren wie das:

Contour - Gaussian

Aber, wenn ich diesen Code verwenden:

contour(x(:,1),x(:,2),y); 

I erhalten eine Meldung, dass:

Fehler unter Verwendung von Kontur (Zeile 48) Z muss mindestens eine 2x2 Matrix.

Ich bekomme wirklich nicht, wie man dieses Problem beheben kann, ich nehme an, Z ist das Y, aber ich verstehe nicht, warum es 2x2 mindestens sein muss. Wie auch immer, jede Hilfe wäre sehr willkommen.

Antwort

0

Sie können keine Kontur über verstreute Daten erstellen, Sie benötigen ein Raster. Es ist möglich, die Daten auf einem Raster von NxN Proben in der XY-Domäne zu interpolieren, wobei griddata (hier die Domäne [-2,2]x[-2,2] als Beispiel):

N = 200; 
xi = linspace(-2, 2, N); 
yi = linspace(-2, 2, N); 
[XI, YI] = meshgrid(xi, yi); 
ZI = griddata(x(:,1), x(:,2), y, XI, YI, 'v4'); 
contour(XI,YI,ZI); 

Weitere Informationen darüber, wie verstreute Daten here zu interpolieren.

Verwandte Themen