2016-08-09 118 views
0

2D Matlab Konturplot - Konzentration KarteMatlab - 2D-Konzentration/Konturplot

Ich habe zwei Sätze von Daten

x = (x1, x2, x3 ....) y = (y1, y2, y3 ....)

die die kartesischen Koordinaten einer Menge von Punkten in der Ebene beschreiben. Also ist x1y1 die Koordinate von Objekt 1 und so weiter.

Die Koordinaten sind auf bestimmte Werte beschränkt: ein Minimum (0) und ein Maximalwert, die die Abmessungen der Ebene (die ein Rechteck ist) beschreiben.

Zum Beispiel könnten die Koordinaten die Position von Objekten in einem Raum oder Bäume in einem Feld oder so beschreiben.

Wie kann ich diese Koordinaten (die beiden Datensätze) als 2D-Kontur/Konzentrationsdiagramm mit Matlab darstellen? das heißt, anstatt nur auf der Ebene Punkte (ein Streudiagramm) eine glatte, kontinuierliche Farbkarte/

freundlichen Grüßen W

+0

Haben Sie einen Wert für jeden "x" und "y" Standort? – Suever

+0

Hu Suever, ja ich habe zwei Vektoren/Arrays: x = (x1, x2, x3 ....) y = (y1, y2, y3 ....). Jeder Wert ist einzigartig und eine Zahl. Es könnte also so aussehen: x = (1,5,7,8,3 ....); y = (5, 6, 3, 2, 5, 8 ...) usw. Das heißt also, es gibt ein Objekt bei (1,5) ein anderes bei (5,6), ein anderes bei (7,3) und so auf. Ich habe (potentiell) Tausende von Objekten. Danke, W – William

+0

Das habe ich nicht gefragt. Sie haben 'x' und' y' aber haben Sie einen Wert für jede Kombination von 'x' und' y'? 'f (x, y)' – Suever

Antwort

0

Es ist nicht wirklich klar ist, was Sie fordern. Denken Sie daran, dass Sie zum Erstellen einer Kontur neben x und y noch einen anderen Datensatz benötigen.

denke ich, was Sie versuchen können zu erreichen mit meshgrid erfolgen, die Sie eine richtige Masche auf Ihre Daten gibt:

x = rand(1,20); 
y = rand(1,20); 
[X,Y]=meshgrid(x,y); 
Z = zeros(size(X)); 
mesh(X,Y,Z); 

enter image description here

0

eine Matrix erzeugen, in dem jeder Wert eine Region koordinieren und addiere 1 für jeden Punkt in dieser Region.

So zum Beispiel haben Sie Punkte (0.5,0.7) (0.9,0.8) (1.5,0.6) (1.8,1.2)

Und Sie dies zu einer Matrix abzubilden, wo jeder Wert auf einen "square" entspricht einer Wertregion 1x1.

a(1,1) = everything in the region 0 <= x < 1, 0 <= y < 1 
a(1,2) = everything in the region 0 <= x < 1, 1 <= y < 2 
a(2,1) = everything in the region 1 <= x < 2, 0 <= y < 1 
a(2,2) = everything in the region 1 <= x < 2, 1 <= y < 2 

So würden Sie [2 1;0 1] bekommen und dann können Sie es konturieren.

Wenn Sie eine feinere Auflösung benötigen, verringern Sie einfach die Mapping-Größe.

Ich kann Ihnen keine Code-Lösung im laufenden Betrieb geben, weil mein Matlab ein wenig eingerostet ist, aber das Prinzip sollte gut funktionieren.