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

Wärmeplot, Heatmap erstellen, vielleicht sogar 3D?

 

knarrre
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2012, 14:50     Titel: Wärmeplot, Heatmap erstellen, vielleicht sogar 3D?
  Antworten mit Zitat      
Hallo,

ich bastel z.Zt an einer Wärmesimulation. Zunächst habe ich mich auf 2D beschränkt. Ich erhalte also als Ergebnis immer einen Vektor mit x- und y- Ortskoordinaten sowie den zugehörgen Temperaturen an dritter Koordinate.
Dieser wird ständig mit den neuen Temperaturen überschrieben.

Im Moment plotte ich das mit

pcolor(Vektor);figure(gcf).

Das hat allerdings ein paar Nachteile:

1. Nur 100x100 Kästchen (Orte) möglich
2. Figure wird immer neu geladen. Ich denke das ist erstens langsam, zweitens kann ich die Legende nicht darstellen
3. nicht für 3D-Simulation geeignet. (Kann meine Simulation noch nicht, sobald es in 2D aber gut funktioniert möchte ich das natürlich erweitern!)

Weiß jemand bessere Wege so etwas zu plotten?

Vielen Dank schonmal!

Philip
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 30.04.2012, 15:37     Titel:
  Antworten mit Zitat      
Ich habe "damals" in meiner Diss den SLICE Befehl benutzt und eine der Schweiben animiert - kam gut an.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
knarrre
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2012, 17:46     Titel:
  Antworten mit Zitat      
Das sieht ziemlich interessant aus! Im Endeffekt kann ich hiermit ja sogar einen Körper zeichnen und darauf dann farbig die Temperatur!

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
knarrre
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 09:00     Titel:
  Antworten mit Zitat      
Kann vielleicht noch jemand etwas zu den anderen Punkten sagen? Z.B., dass das Bild (Figure) auf bleibt (und auch nur einmal geöffnet wird) und immer die aktuellen Werte darstellt? So könnte man z.B. eine Legende einzeichnen etc...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich kann die von dir genannten Punkte so nicht nachvollziehen.

Hast du dafür ein konkretes Beispiel? Insbesondere:
Zitat:
dass das Bild (Figure) auf bleibt (und auch nur einmal wird)

Das ist doch der Normalfall?

Zitat:
und immer die aktuellen Werte darstellt?

Wo genau ist das Problem dabei?

Zitat:
So könnte man z.B. eine Legende einzeichnen etc...

Und das kannst du bisher nicht? Wo genau liegt das Problem?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.05.2012, 13:00     Titel:
  Antworten mit Zitat      
Also das Fenster öffnet sich, wird aber ständig neu geladen. Es gibt dort eine Legende, die die Temperaturen zu den Farben darstellt. Wenn man auf den Button dafür klickt, erscheint diese Legende aber nur kurz.
Ich muss in meiner Schleife den pcolor-Befehl ja jedesmal ausführen lassen. Sie wird also immer neu geladen.
Wenn ich das nicht in die Schleife einbaue, wird einmal gezeichnet und dann verändert sich nichts mehr...
Bei dir ist das nicht so???
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.05.2012, 15:02     Titel:
  Antworten mit Zitat      
Hallo,

bitte poste doch einfach Beispiel-Code. Ich kann nicht sagen, ob das bei mir genauso wäre, weil ich schlicht nicht weiß, was du genau machst.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 10:16     Titel:
  Antworten mit Zitat      
Hallo,

ich kann dazu schlecht den code hier reinstellen, weil der sehr lang ist. Aber meine Frage ist doch einfach:

Ich habe eine Schleife laufen, welche einen Vektor TempVek(y,x) pro durchlauf neu beschreibt. Sagen wir ich mache i Durchläufe.
Nun soll bei jedem i neu geplottet werden.

Damit jedesmal geplottet wird, habe ich den Befehl (pcolor) in der Schleife stehen.
Das führt dazu, dass sich ein Fenster öffnet und hier der Vektor geplottet wird.
Nun gibt es hier einen Button, der eine Legende öffnet, damit erkennbar wird, welche Farbe ungefär für welche Temperatur steht.
Wenn ich diesen anklicke, erscheint diese Legende kurz und verschwindet sofort wieder.
Dies liegt offensichtlich daran, dass beim nächsten Schleifendurchlauf der pcolor-Befehl neu ausgeführt wird und dieser das Rohfenster öffnet, also ohne Legende.

Wie kann ich das besser gestalten? Das irgendwie das Fenster offenbleibt und nur der Plot sich nach jedem neuen i aktualisiert...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ob die Frage so einfach ist, sei dahingestellt.
Die Antwort würde jedoch Beispiel-Code enthalten, und es wäre deutlich leichter, die Antwort zu schreiben, wenn du ein Beispiel (muss ja nicht die volle Anwendung sein) liefern kannst, wie du das bisher umsetzt.
Umschreibungen, was man macht, sind für mich zumindest nie so klar wie ein tatsächliches Code-Beispiel.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 13:58     Titel:
  Antworten mit Zitat      
Hallo Harald:

hier also ein Beispielcode:

Code:

for time=0:3600
for y=1:100
for x=1:100
TempVek(y,x)=10+x+time
%Ist natürlich quatsch aber hier unerheblich. So sind jede Sekunde alle Temperaturen immer anders. So ist es in "echt" ja auch...
end
end
pcolor(TempVek);figure(gcf)
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

in deinem Fall ändert sich die Farbgebung gar nicht?

Ich würde es so versuchen:

Code:
TempVek = repmat(10 + (1:100), 100,1);
p = pcolor(TempVek);

for time=1:3600
    % for y=1:100
    % for x=1:100
    % TempVek(y,x)=10+x+time;
    % %Ist natürlich quatsch aber hier unerheblich. So sind jede Sekunde alle Temperaturen immer anders. So ist es in "echt" ja auch...
    % end
    % end
    TempVek = repmat(10 + time + (1:100), 100,1); %schneller
    set(p, 'CData', TempVek) % entscheidend
    drawnow
end


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 14:57     Titel:
  Antworten mit Zitat      
"drawnow" --> das ist es was ich gesucht habe...

Im übrigen wollte ich nur irgendwelche Werte erzeugen und das so wie ich es grob auch mach. Das müssen natürlich Schleifen sein, weil für jedes (x,y) sich die Temperatur nach den Kästchen jeweils daneben richtet (Wärmeleitung)...

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich habe einen Zeitvergleich gemacht, um zu sehen, wieviel Zeitunterschied das macht. Dazu wollte ich den Anteil für das Erzeugen der Daten möglichst klein halten.
Ich finde es immer hilfreich, wenn das Beispiel so realistisch wie möglich ist, also hier: sich auch die Farbgebung ändern würde. Ansonsten weiß ich nämlich nicht, ob sich die Farbgebung tatsächlich nicht ändern soll oder sie sich durch einen Pfusch meinerseits nicht ändert Wink
Aber nun funktioniert ja alles wie es soll, oder?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 27.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 09:39     Titel:
  Antworten mit Zitat      
Ja TOP! Vielen Dank!
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.