WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

3D-Plot aus Koordinaten(x,y) und Funktionswert(en) (z)

 

Barny.G
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 12:12     Titel: 3D-Plot aus Koordinaten(x,y) und Funktionswert(en) (z)
  Antworten mit Zitat      
Liebes Forum,

bestimmt ist dies ein ganz einfaches Problem, doch bei 3D-Plot tu ich mich meist schwer. Embarassed

Wir haben eine Tabelle mit x,y-Koordinaten und eine Liste mit Funktionswerten, die genau zu diesen Koordinaten passen. Vielleicht kann man sich das so vorstellen, die Vermesser haben Höhen gemessen (z-Koordinate) und diese bestimmten x,y-Koordinaten zugeordnet.

Und ich möchte aus diesen Daten ein schönes Gebirge plotten.

Welcher Befehl(e) wäre da wie anzuwenden? Momentan stehe ich mit surf ziemlich auf dem Schlauch, weil die ja meshgrid voraussetzt (?) und das habe ich ja durch die Definition schon...

Meine Vektoren sind:
Code:
x = [x_1, x_2, x_3, ... , x_n]  %Koordinate Rechtswert
y = [y_1, y_2, y_3, ... , y_n]  %Koordinate Hochwert
z = [z_1, z_2, z_3, ... , z_n]  %Höhe an den Stellen (x,y)


Und ja, ich bin mir bewusst, dass das vielleicht eine zu einfache Fragestellung ist - aber ich komm einfach nicht drauf...

Viele Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.08.2015, 13:01     Titel:
  Antworten mit Zitat      
Zitat:
und das habe ich ja durch die Definition schon...
nein hast du nicht. du hast kein vollständiges gitter mit punkten die einander zugeordnet sind.
meshgrid und griddata sind die dinge die du für deinen surf plot brauchst. denke ich
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 14:01     Titel:
  Antworten mit Zitat      
Hallo Winkow,

mir ist noch nicht ganz klar, was meshgrid genau macht. Ich habe ja die beiden Vektoren x und y (siehe unten bzw. oben Wink ) deren Paare (x_1,y_1) einen Punkt in der Zeichenebene kennzeichnen. Wie kann ich daraus dann mit meshgrid was Verständliches für surf machen?

Wenn ich mir die Hilfe zu meshgrid angucke, dann stehen da geordnete Paare drin. Also alle Paare, die die gleiche x-Koordinate haben, sind in einer Spalte der Y-Matrix vorhanden. Usw. Ist das Richtig? Und gibt es einen einfachen Weg, das so zu ordnen, dass mir die (zeilenweise) Zuordnung der z-Werte nicht verloren geht?

Denn bisher ist das so
Code:

Werte = [x_1, y_1, z_1 ;
         x_1, y_2, z_2 ;
         x_1, y_3, z_3 ;
         x_2, y_4, z_4 ;
         x_2, y_5, z_5 ;
         x_2, y_6, z_6 ;
         x_3, y_7, z_7 ;
         x_3, y_8, z_8 ;
         x_3, y_9, z_9 ;
          :    :    : ]
 

geordnet. Wenn man nun noch bedenkt, dass y_1 = y_4 = y_7 und y_2 = y_5 = y_8 , dann ist
Code:

Werte = [x_1, y_1, z_1 ;
         x_1, y_2, z_2 ;
         x_1, y_3, z_3 ;
         x_2, y_1, z_4 ;
         x_2, y_2, z_5 ;
         x_2, y_3, z_6 ;
         x_3, y_1, z_7 ;
         x_3, y_2, z_8 ;
         x_3, y_3, z_9 ;
          :    :    : ]
 

und damit sind die Matrizen
Code:

X = [x_1 x_2 x_3 ... ;
     x_1 x_2 x_3 ... ;
     x_1 x_2 x_3 ... ]

Y = [y_1 y_1 y_1 ... ;
     y_2 y_2 y_2 ... ;
     y_3 y_3 y_3 ... ]

Z = [z_1 z_4 z_7 ... ;
     z_2 z_5 z_8 ... ;
     z_3 z_6 z_9 ... ]
 

bekannt. Ich glaube, dass ich das soweit verstanden habe. Nur eine Frage noch: stimmt die Zuordnung der z-Werte in der Matrix "Z" im Sinne der Matrix "Werte"?

Viele Grüße

Thomas

Zuletzt bearbeitet von Barny.G am 10.08.2015, 14:32, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 10.08.2015, 14:26     Titel:
  Antworten mit Zitat      
Hallo,

schau dir doch mal dieses Tutorial an.

Gruß,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 14:34     Titel:
  Antworten mit Zitat      
Hallo Nras,

jaha: bei dem Tutorial werden die Werte für z ja erst aus den Matrizen "x_mess"und "y_mess" berechnet. Das kann und möchte ich ja nicht. Vielmehr sind die schon da.

Aaabeeer: Kann ich das so machen wie ein bisschen weiter oben beschrieben? Ich bin mir eben nur bei der Zuordnung in Z nicht so ganz sicher...

Viele Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.08.2015, 15:26     Titel:
  Antworten mit Zitat      
Zitat:
jaha: bei dem Tutorial werden die Werte für z ja erst aus den Matrizen "x_mess"und "y_mess" berechnet. Das kann und möchte ich ja nicht. Vielmehr sind die schon da.
und worin besteht das problem die zeile durch deine zeile mit den zwerten zu ersetzen?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 10.08.2015, 15:34     Titel:
  Antworten mit Zitat      
Ich verstehe das Problem auch nicht, du startest mit den Variablen x, y und z. Das Tutorial startet mit x_mes, y_mess, z_mess. Lass es doch einfach mal damit laufen und guck an, was passiert. Wo die Werte für z in dem Beispiel herkommen, spielt doch keine Rolle, es geht da nur ums Visualisieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 19:13     Titel:
  Antworten mit Zitat      
Hm, ich finde schon, dass es eine Rolle spielt. Denn es macht schon einen Unterschied ob ein bestimmter Wert (z.B. ein Quasi-Singulariät) nun im linken, unteren Eck des betrachteten Gebietes ist oder eher in der Mitte.

Insofern möchte ich eben wissen, ob das, was ich da
Zitat:
Denn bisher ist das so
Code:
Werte = [x_1, y_1, z_1 ;
         x_1, y_2, z_2 ;
         x_1, y_3, z_3 ;
         x_2, y_4, z_4 ;
         x_2, y_5, z_5 ;
         x_2, y_6, z_6 ;
         x_3, y_7, z_7 ;
         x_3, y_8, z_8 ;
         x_3, y_9, z_9 ;
          :    :    : ]

geordnet. Wenn man nun noch bedenkt, dass y_1 = y_4 = y_7 und y_2 = y_5 = y_8 , dann ist
Code:

Werte = [x_1, y_1, z_1 ;
         x_1, y_2, z_2 ;
         x_1, y_3, z_3 ;
         x_2, y_1, z_4 ;
         x_2, y_2, z_5 ;
         x_2, y_3, z_6 ;
         x_3, y_1, z_7 ;
         x_3, y_2, z_8 ;
         x_3, y_3, z_9 ;
          :    :    : ]

und damit sind die Matrizen
Code:
X = [x_1 x_2 x_3 ... ;
     x_1 x_2 x_3 ... ;
     x_1 x_2 x_3 ... ]

Y = [y_1 y_1 y_1 ... ;
     y_2 y_2 y_2 ... ;
     y_3 y_3 y_3 ... ]

Z = [z_1 z_4 z_7 ... ;
     z_2 z_5 z_8 ... ;
     z_3 z_6 z_9 ... ]

bekannt.

produziert habe, richtig ist. Möglicherweise fehlt mir eben auch das Talent mich einfach auszudrücken Sad

Ich habe eine Koordinatenliste in der in der Spalte für "z" eben die Werte stehen, die ich als dritte Dimension darstellen möchte.

Meine Lösung für die Verwendung in surf habe ich ja mit dem letzten Pseudocodeschnipsel angegeben. Ich wüsste nur gern, ob das so richtig ist...

Viele Grüße!!

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2015, 19:18     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich wüsste nur gern, ob das so richtig ist...

Probiers doch einfach aus. Lass dir die Oberfläche anzeigen und zusätzlich mit plot3 die Datenpunkte.

Die Anordnung der originalen Punkte ist gleichgültig, da bei der Interpolation die Punkte nicht nach Reihenfolge, sondern Nähe zum Gitterpunkt gewählt werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 19:26     Titel:
  Antworten mit Zitat      
Hallo Harald,

sehr schön, dass Du Dich der "Sache" annimmst! Du schreibst
Zitat:
Die Anordnung der originalen Punkte ist gleichgültig, da bei der Interpolation die Punkte nicht nach Reihenfolge, sondern Nähe zum Gitterpunkt gewählt werden.

Heißt Das, selbst wenn ich die Anordnung meiner Gitterpunkte so manipuliere, dass eine ähnliche Struktur wie im Hilfebeispiel von MatLab herauskommt, trotzdem "jemand" interpoliert? Btw: Wer? Welche Funktion? Und: Warum eigentlich?

Ich hoffe das sind keine Fragen, die Dir den Abend klauen...

Den Vergleich zu plot3 werde ich auf jeden Fall machen. Gute Idee - Danke!


Viele Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2015, 19:31     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
trotzdem "jemand" interpoliert? Btw: Wer? Welche Funktion?

In dem Tutorial griddata . Das geht aber auch aus der Doku hervor.
Wenn man einen Code übernimmt, würde ich ja schon einen Blick in die Doku der beteiligten Befehle werfen.

Zitat:
Und: Warum eigentlich?

surf benötigt Daten auf einem rechteckigen Gitter in einem bestimmten Format, und dein Datenformat weicht davon ab. Im allgemeinen werden die Originaldaten auch nicht auf dem rechteckigen Gitter sein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2015, 19:43     Titel:
  Antworten mit Zitat      
Hallo Harald,

letztlich war es Dein Tipp, der mich weitergebracht hat. (siehe Anhang) So eine Verifiationsmöglichkeit hatte ich mir gewünscht. Schön sieht man, dass die vorberechneten Werte gut auf der von Matlab erzeugten Fläche liegen. Alles ist nun i.O.!!

Danke nochmals!

Thomas

MitPlot3.pdf
 Beschreibung:

Download
 Dateiname:  MitPlot3.pdf
 Dateigröße:  757.73 KB
 Heruntergeladen:  662 mal
OhnePlot3.pdf
 Beschreibung:

Download
 Dateiname:  OhnePlot3.pdf
 Dateigröße:  284.9 KB
 Heruntergeladen:  509 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2015, 20:14     Titel:
  Antworten mit Zitat      
Hallo,

entweder hast du sehr schön regelmäßige Daten oder du hast statt der Daten die interpolierten Werte in plot3 reingesteckt. Zur Verifizierung sollten es aber die Originaldaten sein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Barny.G
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 17.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.08.2015, 07:06     Titel:
  Antworten mit Zitat      
Hallo Harald,

das sind die Originaldaten. Ich habe auf einer Fläche an Gauß-Quadraturpunkten die Stärke eines Magnetfeldes ausgerechnet. Sind also Simulationsdaten. Wink

Deswegen passen die auch so gut zusammen.

Viele Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.