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

Plot mit surf

 

Divid

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 11:03     Titel: Plot mit surf
  Antworten mit Zitat      
Ich habe folgendes Problem:

Ich habe eine Rechteckfläche, die über zwei Vektoren (Höhe, Spaltenvektor mit 18 Elementen / Breite, Zeilenvektor mit 10 Elementen) definiert ist. Sozusagen ein Netz aus x- bzw. y-Koordinaten mit insgesamt 180 (18x10) Punkten. Diese Koordinaten, die jeweils die einzelnen Elemente der Vektoren darstellen, sind innerhalb des Vektors zwar aufsteigend, aber sonst nicht geordnet, dh insbesondere nicht linear oder logarithmisch.

Nun habe ich für jeden dieser 180 Punkte einen skalaren Funktionswert Z ermittelt. Z ist also eine Matrix 18x10 mit einfachen Zahlen. Allerdings ist es nicht möglich, Z als f(x,y) darzustellen, da die Berechnung von Z sehr komplex ist und auch teilweise in Programmen außerhalb von Matlab erfolgt. Ich habe also nur den Funktionswert an den definierten Punkten und möchte diesen mit surf plotten. Ich hoffe, es wird klar, was ich meine.

Gibt es nun eine Möglichkeit, aus den beiden Vektoren Höhe und Breite mit Z eine Art Tripel zu bilden und dann das Tripel mit surf zu plotten? Oder vielleicht eine ganz andere Möglichkeit?

Bisher fand ich nur Hinweise, die darauf beruhen Z = f(x,y) zu bilden, was hier aber nicht möglich ist. Ebenso verlangt Matlab bei surf ja Matrizen gleicher Größen.
Falls ich nur nach den falschen Stichworten gesucht habe, bitte ich um die Richtigen.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.09.2009, 11:41     Titel:
  Antworten mit Zitat      
Hallo,

Code:

sollte gehen. Wie du dabei deine Matrix Z ermittelst, ist ja gleichgültig.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Divid

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 11:50     Titel:
  Antworten mit Zitat      
Nein, das geht nicht. Ich erhalte eben folgende Fehlermeldung:
Code:

??? Error using ==> surf at 70
Data dimensions must agree.


Laut meinem Matlab-Buch will surf da eben Matrizen x,y,Z gleicher Größe bzw. habe ich das so verstanden.
 
Divid

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 12:19     Titel:
  Antworten mit Zitat      
Ich bin mittlerweile draufgekommen, einfach mal surf(Z) auszuprobieren und es klappt.

Jetzt habe ich nur noch ein Problem. Beim Vektor Höhe verläuft nicht von 0 --> Max. sondern von einem Wert > 0 zum größten Eintrag. Wenn ich nun wie oben mit surf(Z) plotte, dann beginnt der Plot bei der Höhe = 0, er soll aber bei Höhe = Höhe(1,1) beginnen und bei Höhe(18,1) enden. Wie bekomme ich das hin?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.09.2009, 12:29     Titel:
  Antworten mit Zitat      
Hallo,

x und y vertauschen, oder Z transponieren, und es geht. Dann stimmen auch die Beschriftungen. Es müssen nicht Vektoren GLEICHER, sondern ZUSAMMENPASSENDER Größe sein.


Grüße,
Harald

P.S.: Das beste MATLAB-Buch ist wahrscheinlich immer noch die MATLAB Doku.
Private Nachricht senden Benutzer-Profile anzeigen
 
Divid

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 13:35     Titel:
  Antworten mit Zitat      
Danke, jetzt klappts!
 
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 - 2024 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.