Ich nutze MatLab für die Darstellung der Höhenlinien eines vorgegebenen Skalarfelds, das das Ergebnis des numerischen Models ist, das ich derzeit für die Durchführung meiner Simulationen benutze.
Ich habe dabei ein Problem mit den Farbbalken und hoffe, dass mir jemand dabei helfen kann.
Kurze Beschreibung:
1-Koppelung des numerischen Models (um .dat -Ergebnisdatein herzustellen) mit MatLab (zur grafischen Ergebnisdarstellung)
2-Der Output des Models ist nicht feststehend, d. h. er führt die Entwicklung des Skalarfeldes mit der Zeit zurück (Zeitfenster: 6 Stunden). Es ist wie ein Film mit vielen Einzelbildern.
Ich möchte die Linien des Skalarfeldes darstellen. Hierfür wird ein Farb-Balken verwendet.
Problembeschreibung:
(a) Der numerische Umfang des Farb-Balkens gleicht sich automatisch den höchsten (und niedrigsten) jeweiligen Zahlenwerten eines Bereiches für genau dieses Feld an (d.h. unmittelbar bei jedem t).
(b) Die Farben wechseln entsprechend.
(c) Rot steht beispielsweise für den höchsten Wert des Bereiches [t=1] und - dem widersprechend (aber rational) wird Rot einem anderen (niedrigeren oder höheren) Wert des Bereiches [t=1+Dt=2] zugeordnet.
Frage:
(i) Wie kann ich einen festen, unveränderlichen numerischen Umfang/Bereich für die Farbbalken festlegen?
Könnte ich es wie folgt machen (**) :
-Einschätzung von Maximum und Minimum [der darzustellenden Parameter] eines Bereiches = [1: Ende]
-Festlegung der Intervalle der Farbbalken [min:max]
-Start der Animation
-Wie kann ich den Anhaltspunkt (**) MatLab vermitteln?
Ich bin für jeden Hinweis dankbar.
Vielen Dank im Voraus.
Liebe Gruesse aus Lissabon
colorbar
%zlim([04]) title(['T_{m01}forDay:',list(k).name(12:13), 'Hour: ',list(k).name(15:16)],'Color','r') xlabel('Easting on Lisboa Datum [km]') xlim([0200])
%ylabel('Northing on Lisboa Datum [km]')
ganz so war das nicht gedacht. Mit Beispiel-Code war ein kurzer Code gemeint, der das von Dir beanstandete Verhalten zeigt, ohne sich in sonstigen Details zu verlieren. Immerhin konnte ich Deinem Code nun entnehmen, dass Du Grafiken von Höhenlinien mit contourf hast, wobei sich der Farbbalken, der mit dem Befehl colorbar erzeugt wird, in jedem Schritt verändert. Du möchtest für alle Grafiken denselben Farbbalken.
Dein Lösungsansatz war dann schon ganz richtig. Ich würde in einer Schleife die Daten erzeugen (data{1} bis data{numel(list)}), dann über alle data das Maximum und Minimum bestimmen und in einer weiteren Schleife die Grafiken erzeugen:
Code:
% Beispieldaten
data = cell(2,1);
for k = 1:2
data{k} = k*peaks;
end
% Min und Max über alle Datensätze bestimmen
total_min = min(cellfun(@(x)min(x(:)),data));
total_max = max(cellfun(@(x)max(x(:)),data));
ich bin sehr dankbar.
Die code ist sehr slicht und sehr sehr effektiv.
Danke auch fuer die schnelle antwort.
Ich wünsche dir ein tolles Wochenende!
Freundliche Grüße
Marco
Einstellungen und Berechtigungen
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.