Verfasst am: 03.01.2012, 17:56
Titel: 2D-Plot; Fläche durch Temperaturverlauf färben
Hi,
ich habe ein Programm, welches mir am Ende den Radius R in Abhängigkeit von der Höhe Z ausspuckt. In dem Programm berechne ich auch eine Temperatur, die sich mit der Höhe verändert.
Ich möchte jetzt gerne die Fläche des Plots zwischen R und T mit Farbe füllen. Und zwar in Relation zum Farbverlauf.
Ich schaffs einfach nicht. Ich habs mit Patch versucht, mit imagesc nichts war im Nachhinein richtig...Ich sitze da jetzt schon seit 4 Tagen dran und weiss nicht mehr weiter. Ich bin für jeden Hinweis dankbar
Ich setze mein Programm in den Anhang rein. Der Plot macht da glaube ich anschaulicher klar, was ich möchte.
Das Programm wird über die Höhe z integriert. Es läuft über einen Schleife von 1 bis nstep.
Die Temperatur t wird für jede Höhe berechnet. Diese muss in einem Vektor abgespeichert werden. Wenn alle drei Vektoren, r,z und t die gleiche Länge haben, kann ich den Patch-Befehl anwenden und erhalte die Einfärbung der Fläche von r_vec und z_vec in Abhängigkeit von t
plot(r_vec,z_vec,'r-') plot(-r_vec,z_vec,'r-')% um eine Kegelform zu erhalten muss ich auch über -r_vec plotten. Mit diesen zwei Plotbefehlen habe ich erst den Rand ohne oberen Abschluss
z2 =[z_vec; z_vec(end:-1:1)]; % hier definiere ich die Fläche: von z_anfang bis ende und dann wieder zum Anfang; das sind jedoch doppelt so viele werte, wie z_vec hat
r2= [r_vec;-r_vec(end:-1:1)];% dassselbe
t3=[t_vec';t_vec']; %damit ich für den Temperatur-Vektor die gleiche Länge habe definiere ich einen zweispaltigen Vektor mit der halben Zeilenzahel wie r2 und z2.
t3=t3(:);% hier wandel ich die zwei Spalten in eine Spalte und doppelt so viele Zeilen um. t3 hat nun dieselbe Anzahl an Zeilen und Spalten. Jede Zeile wird einmal wiederholt. Da sich meine Temperatur nicht auf einer kleinen Skala verändert, macht die Wiederholung in meinem Fall nichts.
patch(r2,z2,t3,'edgecolor','none'); % patch färbt nun die Fläche - aufgespannt durch r2 und z2 in Abhängigkeit von der Temperaturfarbe von t3 ein.
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
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.