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

Contour-Plot Problem

 

Dexter
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 18:22     Titel: Contour-Plot Problem
  Antworten mit Zitat      
Hallo Leute,

ich versuche momentan einen Contour Plot zu erstellen. Das ganze scheint allerdings nicht zu funktionieren, weil ich Datensätze mit unterschiedlicher Anzahl Spalten und Zeilen habe.
Das Ganze sieht wie folgt aus:

Ich habe drei Variablen:
Zeit (6280x1 double)
Hoehe (24x1 double)
Vh (6280x24 double)

Versuche ich das so
Code:
contour(Zeit, Hoehe, Vh)

zu plotten, kommt die Fehlermedlung: "The size of X must match the size of Z or the number of columns of Z."

Macht für mich auch Sinn, da die Dimensionen ja nicht stimmen. Die Frage ist nun aber, ob ich das umgehen kann, oder es schlicht und einfach nicht möglich ist diese Daten in der Form zu plotten.

Ich hänge für das Verständnis meines Problems nochmal ein Bild an, wie ich es gerne hätte.

Hoffe mir kann jemand helfen. Smile

Contour.jpg
 Beschreibung:

Download
 Dateiname:  Contour.jpg
 Dateigröße:  82.05 KB
 Heruntergeladen:  815 mal
Private Nachricht senden Benutzer-Profile anzeigen


Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 20:19     Titel:
  Antworten mit Zitat      
Okay, also nach ein wenig rumpfuschen, bin ich dann immerhin auf so das Bild im Anhang gekommen.

Das habe ich mir aber wirklich zurecht gepfuscht, indem ich die Variablen angepasst habe. Soll heißen ich habe aus der Variable "Zeit" mit einer Spalte und 6280 Zeilen eine Variable "Zeit1" mit 24 Spalten und 6280 Zeilen gemacht. Also die erste Spalte 24 mal kopiert.
Genau das gleiche habe ich mit "Hoehe" gemacht. Nur das ich dort aus einer zeile 6280 Zeilen gemacht habe.

Nun hatte ich drei Variablen mit der Dimension 6280x24. Das plotten funktionierte dann auch, nur nicht so wie es aussehen soll...

versuch1.jpg
 Beschreibung:

Download
 Dateiname:  versuch1.jpg
 Dateigröße:  27.94 KB
 Heruntergeladen:  843 mal
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: 27.06.2013, 22:01     Titel:
  Antworten mit Zitat      
Hallo,

willst du vielleicht einfach:
Code:
[x,y] = meshgrid(Zeit,Hoehe);
contourf(x,y,Vh')

haben?

Viele Grüße,
Nras.

Edit: Das hier gehört vielleicht eher zu Grafiken und Plots?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 22:48     Titel:
  Antworten mit Zitat      
Würde es wirklich gerne testen, bekomme aber immer:
Code:
??? Out of memory. Type HELP MEMORY for your options.


Am Code kann ich wohl kaum was minimieren. Habe schon alles an Variablen gelöscht, was ich nicht brauche...Fehler kommt aber weiterhin.
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: 27.06.2013, 22:58     Titel:
  Antworten mit Zitat      
Naja, du könntest mal von den Daten nur die ersten paar Werte nehmen.
Vor der Berechnung:

Code:
Zeit = Zeit(1:1000);
Vh = Vh(1:1000,:);

(oder ggf noch weniger, oder du nimmst die ganze Zeit aber nicht alle Werte für die Höhe). Das löst natürlich insgesamt nicht das Speicherproblem, aber wenn dann der "richtige" Plot rauskommt, weißt du, wo du ansetzen kannst.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 23:17     Titel:
  Antworten mit Zitat      
Okay, das Ganze funktioniert jetzt mit den originalen Daten. Muss also nicht mehr rumpfuschen. Danke dafür!
Das Ergebniss ist jetzt das selbe wie ich es oben hinbekommen habe. Nur passt mir das aussehen nicht wirklich.

Ist es möglich die Übergänge fließend zu machen? Und die einzelnen Bereiche mit dem jeweiligen Wert automatisch zu beschriften?
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: 27.06.2013, 23:32     Titel:
  Antworten mit Zitat      
Hallo,

hast du eigentlich eine zusammenhängende Zeitreihe? Und was bedeuten denn dann die weissen Bereiche? Wurde da plötzlich in gewisser Höhe nicht mehr gemessen? Stehen da NaN in der Matrix Vh? Hast du beim Zusammenfügen der Daten etwas falsch gemacht? Das sieht mir total untypisch aus, dass da beim Übergang von einer Stunde zur nächsten das Bild komplett anders aussieht. Das sollte eigentlich von sich aus schon fließender sein. Ich vermute einfach, dass da irgendwas nicht ganz richtig ist....

Kannst du mal ein einfaches
Code:
h = pcolor(x,y,z);
set(h,'EdgeColor','none')
shading interp


ausführen und das Bild hochladen? Oder hast du eine Erklärung dafür, dass dein Messmast (oder was auch immer) sich in jeder Stunde neu überlegt, bis wohin er messen möchte?

Bereiche automatisch beschriften ist mir nun nicht ganz klar, du kannst aber die Höhenlinien beschriften, die Anleitung dazu steht in der Hilfe unter doc countour.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 23:37     Titel:
  Antworten mit Zitat      
Ich kann es dir gerne erklären. Die Winddaten werden von einem Lidar (Light Detection and ranging) gemessen. Sobald dieses in einer bestimmten Höhe keine Daten mehr empfängt, werden NaN gespeichert, hast Du schon ganz richtig erkannt.
Hätte ich wohl erwähnen sollen...

pcolor.jpg
 Beschreibung:

Download
 Dateiname:  pcolor.jpg
 Dateigröße:  16.14 KB
 Heruntergeladen:  788 mal
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: 27.06.2013, 23:47     Titel:
  Antworten mit Zitat      
Hallo,

na dann ist wohl im Code alles so richtig.
Sind die Daten für Stunde 2 zeitlich direkt hinter den Daten von Stunde 1 gemessen worden, oder sind das 2 völlig unterschiedliche Stunden? Zum Beispiel die eine Stunde am 3.5.2010 von 3:00 bis 4:00 und Stunde 2 am 6.7.2011 irgendwann.
Innerhalb jeder Stunde sieht das ja vernünftig aus, nur bei den Wechseln der Stunde nicht. Die für mich einzige Erklärung wäre, dass das keine zusammenhängende Zeitreihe ist. Und dann kann man da auch keine sinnvollen Übergänge hinkriegen, denn es gibt keinen.

Die unterschiedliche Höhe ist damit auch geklärt - und da, wo keine Daten sind, kann auch nichts sinnvoll interpoliert werden. Daher wirst du nicht so ein Bild, wie anfangs angehängt, erhalten können.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 23:59     Titel:
  Antworten mit Zitat      
Es handelt sich um eine zusammenhängede Zeitreihe. Ich kann mir vorstellen, das es einfach an der Form dieser Zeitreihe liegt. Ich habe die Zeitreihe die ich verwende einfach mal an.
Es sind halt immer einige hundert Messpunkte die in jeder Stunde liegen, da etwa alle 7 Sekungen ein Messwert aufgezeichnet wird. Der Übergang von Stunde 1 zu Stunde 2 ist dann einfach der Wechsel von 1 zu 2 in der Datei.

zeit.rar
 Beschreibung:

Download
 Dateiname:  zeit.rar
 Dateigröße:  290 Bytes
 Heruntergeladen:  321 mal
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: 28.06.2013, 10:34     Titel:
  Antworten mit Zitat      
Hallo,

also mit der Zeit kann man ja so eher wenig anfangen. Ich dachte, da würden soewas sehen wie Uhrzeiten oder Zeit seit der ersten Mressung in Sekunden. Deine Zeit ist eine Treppenfunktion die einfach die ewa alle 500 Schritte um 1 erhöht wird und sonst konstant bleibt.

Ich kann dir da dann leider auch nich weiterhelfen. Diese scharfen Übergänge von einer Stunde zur anderen in den Windgeschwindigkeiten sind dann einfach so in den Daten und da wird dir dann der Contourplot immer so scharfe vertikale Trennlinien geben.
Der Übergang von Stunde 4 zu 5 sieht in deinem Plot ja ganz glaubwürdig aus, aber der Übergang von Stunde 1 zu 2 oder von 9 zu 10 kann ich so nicht glauben. Es gibt ja keinen Grund, warum der Wind eine Stunde lang nur so lau weht und dann innerhalb von 8 Sekunden sein Verhalten komplett für eine Stunde lang ändert und dann wieder ein neues Verhalten zeigt. (Falls die Geschwindigkeit von blau->grün->gelb->orange->rot farbkodiert ist).

Vielleicht kannst Du mit den Plots zu demjenigen gehen, der die Messung gemacht hat (sofern du das nicht selbst warst) oder dir die Daten gegeben hat und mal vorsichtig nachfragen.

Eventuell sind das keine Rohdaten, sondern schon pro Stunde (und Höhe) bereits geglättete/gefilerte Daten, sodass die Stundenwerte in sich stimmig sind aber nicht mehr zueinander passen. Aber das ist von mir sowieso nur alles Spekulation, vielleicht ist ja auch alles richtig und ich verstehe es nicht. Das kann gut sein.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2013, 13:49     Titel:
  Antworten mit Zitat      
Also du mutmaßt da wirklich schon wirklich richtig. Ich habe mir diese Stundendaten selbst so erstellt. Eigentlich hatten sie die Form: Tag/Monat/Jahr - Stunde/Minute/Sekunde.zehntelsekunde
Aber damit konnte MatLab überhaupt nicht um.
Und ja, der eine Plot den ich durchgeführt habe, ist ein Plot von über 10 minuten gemittelte Daten. Aber auch wenn ich die Rohdaten verwende, entsteht ein gleiches/ähnliches Bild, mit diesen abgehackten Übergängen. Es wird also wohl an der Zeiteinteilung liegen.
Aber mit der originalen "Timestamp" wird es so wohl nicht funktionieren. Muss ich nochmal ein wenig rumbasteln, wenn ich heute Abend wieder zuhause bin.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2013, 20:53     Titel:
  Antworten mit Zitat      
Ok, also mit der "normalen" Uhrzeit im Format Stunden:Minuten:Sekunden.Zehntelsekunden funktioniert es nicht. Denke mal, weil das cell ist und nicht double.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2013, 21:39     Titel:
  Antworten mit Zitat      
So, als kleine Rückmeldung. Ich habe es nun nach vielem rumgespiele geschafft. Die Uhrzeit habe ich Stunden mit den Sekunden als entsprechende Nachkommastelle umgewandelt:

Code:
u2 = Zeit1;  

sek2 = (mod(datenum(u2), 1)) * 24;


Anshließend dann ganz normal mit

Code:
[x,y] = meshgrid(sek2,Hoehe);
[C1,h] = contourf(x,y,Vhm');
clabel(C1,h)


geplottet.

Das Ergebnis sieht man im Anhang.

Vielen Dank für die Hilfe Nras! Hast mir echt sehr geholfen!
Der Rest sind nur noch Feinheiten...

Grüße,
Dexter

besser.jpg
 Beschreibung:

Download
 Dateiname:  besser.jpg
 Dateigröße:  93.96 KB
 Heruntergeladen:  704 mal
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: 01.07.2013, 23:12     Titel:
  Antworten mit Zitat      
Hallo,

na das sieht ja schon wirklich fast so aus wie eingangs gewünscht. Da habe ich aber in Wirklichkeit nicht viel zu beigetragen (-:.
Etwas komisch ist aber, dass die Geschwindigkeiten in der ersten Stunde mit steigender Höhe (so ab 300m) wieder fallen. Hast du dafür noch eine Erklärung?

Viele Grüße und weiterhin viel Erfolg,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.