surface-plot,einzelne punkte < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Aber hallo erstmal!
Ich würde gerne einen surface plot machen, habe aber nur einzelnen Punkte dieser Fläche. Das heißt nur zu bestimmten x-y Punkten existieren z Werte.
Für die surface Funktion brauche ich ja aber eine volle Matrix. Die matrix mit Nullen auffüllen macht ja keinen Sinn, denn ich will zwischen den Messpunkten ja interpolieren.
Weiß jemand wie ich das anstelle?
Konkret heißt das, ich habe 10 Punkte: [1,2,3], [2,4,5], [5,7,2], [4,2,8], ...
Danke!
|
|
|
|
Hi,
siehe dazu folgendes Beispiel:
1: | clear all; clc;
| 2: |
| 3: | x = rand(10,1)*2-1;
| 4: | y = rand(10,1)*2-1;
| 5: | z = rand(10,1)*2-1;
| 6: |
| 7: | xlin = linspace(min(x),max(x),20);
| 8: | ylin = linspace(min(y),max(y),20);
| 9: | [X,Y] = meshgrid(xlin,ylin);
| 10: | Z = griddata(x,y,z,X,Y,'cubic');
| 11: |
| 12: | hold on;
| 13: | plot3(x,y,z,'ro');
| 14: | surf(X,Y,Z);
| 15: | hold off; |
Suchst Du sowas?
Viele Grüße
nschlange
|
|
|
|
|
Jetzt habe ich noch eine anschliessende Frage:
Ich habe zwei surface plots, die ich gerne in einem figure nebeneinanderstellen moechte. Das funktioniert auch wunderbar. Aber um besser zu vergleichen zu koennen sollte dabei aber auch die colorbar einheitlich sein. Bisher geht die colorbar bei den beiden plots jeweils vom lokalen minimum bis zum lokalen maximum. Ich haette aber gerne eine einheitliche colorbar fuer beide plots, also global.
Wie bekomme ich das hin?
Tausend Dank!
|
|
|
|