Ich glaube mein Problem ist recht simpel zu lösen, ich suche jetzt allerdings schon seit stunden nach einer Lösung und komme nicht weiter...
Ich habe ein Plot mit mehreren Kurven erstellt. Diese Kurven stellen Temperaturverläufe dar.
Ich möchte im Plot gerne sehen, welche Temperatur die beiden "extremen" haben.
Da es bei jeder Auswertung andere Temperaturfühler sein können, muss Matlab automatisch erkennen, welcher der wärmste und welcher der kälteste ist...
Ich möchte aus den 8 geplotteteten Graphen, wirklich nur die maximale Temperatur die in einem der Graphen auftritt und die minimale Temperatur. Über die Zeit benötige ich es nicht.
Ich habe meine Zuweisung zunächst, wie empfholen, umgeschrieben.
Dann habe ich mir eine min-/maxfunktion geschrieben. Diese funktioniert sogar.
der Index, den man zurück erhält, ist dann logischerweise ein linearer Index. Mit ind2sub kann man das dann wieder in Zeilen- und Spaltenindex zurückrechnen.
Mit text oder gtext kann man zudem Text in einem Graphen darstellen.
Mit sehen meine ich, dass Matlab von sich aus ein Textfeld in dem Plot erstellt, das auf den Punkt der Temperaturmaximalen zeigt. Zum Beispiel mit einem Pfeil oder Ähnlichem.
Mit gtext bekomme ich selber die Möglichkeit den Ort des Punktes zu bestimmen, ich möchte aber, dass das Programm sämtliche Schritte ausführt, sodass der Betrachter keine Arbeit und keine Fragen mehr hat.
Was bringt mir das denn, wenn ich meine Daten als Index ausgegeben bekomme? Habe keine Erfahrung
Ich stelle mir das so vor:
ein Punkt in dem Graphen angezeigt wird mit dem Temperaturminimum. Leider ist dieser Punkt beim Startzeitpunkt abgelegt und nicht auf dem tatsächlichen Punkt in der Kurve!? Das ist eigentlich nicht optimal.
Toll wäre auch, wenn an dem Punkt die Temperatur stehen würde...
Desweiteren möchte ich, dass jeder y-Wert eine fest zugewiesene Farbe im Plot bekommt. Wenn ich die y einzeln plotte, so wie in meiner ersten gezeigten Version, bekomme ich das natürlich hin.
Jetzt habe ich schon versucht
hast du denn mal versucht, meine Anregungen mit dem text-Befehl umzusetzen?
Bitte möglichst klar erklären, was du versuchst und vor allem: was daran nicht wie gewünscht funktioniert.
Mir ist bei dem "Desweiteren"-Teil weder klar, was du genau willst (geht es wirklich um jeden einzelnen Wert oder nicht eher um die verschiedenen Spalten?) noch wo das Problem bei der Umsetzung ist.
gibt mir MATLAB die Datenreihe aus in dem die Temperatur auftritt. D.h. es steht an dem betroffenen Punkt "Datensatz8" oder "Datensatz3" usw. ... nicht die Temperatur oder der wirkliche Name der Reihe (DL1B3, ...).
Ich hätte gerne das dort die Temperatur und der Name der Datenreihe, also DL1B3 usw. steht... die Temperatur klappt ja schon.
Ausprobiert habe ich nichts, da ich wirklich keine Idee habe, wie ich die Beiden verknüpfen kann...
Ich hoffe ich drücke mich dieses Mal verständlicher aus :/
%% Ungefiltert:
%figure(2)
%subplot(3,1,1);
%hold
%for ii=1:8% 8 --> wegen 8 Spalten der Matrix
%plot(x,a(:,ii),sensorfarbe(ii))
%legend('DL1B4','DL1A1','DL3B1','DL3A4','DL2A4','DL3B3','DL1A3','DL2B4',5)
%title('Deckenebene')
%xlabel('Time [min]')
%ylabel('Temperatur [°C] ungefilter')
%hold on
%grid on
%end
%% Gefiltert: figure(1) subplot(3,1,1);
hold for ii=1:8% 8 --> wegen 8 Spalten der Matrix plot(x,afilt(:,ii),sensorfarbe(ii)) legend('DL1B4','DL1A1','DL3B1','DL3A4','DL2A4','DL3B3','DL1A3','DL2B4',10) title('Deckenebene') xlabel('Time [min]') ylabel('Temperatur [°C] gefiltert') hold on
grid on
end
figure(1) subplot(3,1,2);
hold for ii=1:11% 11 --> wegen 11 Spalten der Matrix plot(x,zfilt(:,ii),sensorfarbe(ii)) legend('DL4A3','DL1B1','DL1A2','DL4A1','DL3B2','DL3A1','DL4A2','DL2A1','DL3B4','DL1A4','DL2B1',10) title('Mittelebene') xlabel('Time [min]') ylabel('Temperatur [°C]') hold on
grid on
end
figure(1) subplot(3,1,3);
hold for ii=1:8% 8 --> wegen 8 Spalten der Matrix plot(x,yfilt(:,ii),sensorfarbe(ii)) legend('DL1B2','DL1B3','DL3A2','DL3A3','DL2A2','DL2A3','DL2B2','DL2B3',5) title('Bodenebene') xlabel('Time [min]') ylabel('Temperatur [°C]') hold on
grid on
end
Ich habe meine Messwerte in drei Ebenen (Decke, Mitte, Boden) aufgeteilt.
Die Maximalwerte und die Minimalwerte werden in zwei Plots (Decke, Mitte) angezeigt. Zusätzlich sehe ich in diesen Plots den Namen des Sensors des Minimalwertes.
In der Bodenebene bekomme ich zwei Fehler ausgeworfen und sehe weder Temperaturen noch Namen:
Ich bin der Meinung ich habe bei der Bodenebene alles genauso gemacht wie bei den Beiden zuvor auch. Ich habe auch schon alle Matrizen überprüft, ich finde aber nichts!!!
Einen weiteren Fehler bekomme ich, wenn ich bei den beiden Ebenen Decke und Mitte, den Code so erweitern möchte, dass ich auch den Namen des Sensors mit der MAX-Temp. sehe:
sowas ist n fall für den debugger
setz da einfach mal ne marke und guck dir die werte an. irgendwas stimmt da ja nicht. dein index überschreitet da ja die größe der matrix..
_________________
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.