Verfasst am: 27.07.2017, 16:41
Titel: for-Schleife für plot verwenden
Hallo zusammen,
ich benötige mal Hilfe von euch.
Ich schreibe zurzeit meine MA und erstelle dazu Diagramme mit Matlab (R2010a).
An sich stellt das auch keine Probleme dar, aber damit es einfacher wird und alle Diagramme gleich werden,möchte ich eine Funktion verwenden. Diese habe ich Mittels Matlab erstellt und abgeändert. Funktioniert auch wunderbar. Aber bisher nur für ein Diagramm. jetzt möchte ich gerne, dass jedes Diagramm nach der von mir erstellten Funktion erstellt wird. Insgesamt wären es 18 Diagramme bei denen natürlich die verwendeten Daten anders sind, also X und alle Y sind anders.
Wie kann ich das am besten umsetzen? Ich habe an eine for-Schleife gedacht. Aber weiß nicht genau wie und wo ich Sie anwenden soll.
So sieht das Einlesen meiner Daten und mein bsiheriger Programmtext aus:
Was immer Du vorher gemacht hast ist danach zerstört. Zudem sind alle Funktionen aus dem RAM gelöscht und das Nachladen von der Festplatte ist ein sinnfreier Zeitfresser. Ich bedauere sehr, dass dieses brutale Löschen unter Anfängern so weit verbreitet ist und verstehe nicht, weshalb so etwas empfohlen wird.
Du jannst den Code zum Erstellen der Grafik in eine Funktion auslagern, die nur die variablen Daten als Input verwendet. Dann musst Du Dich noch entscheiden, ob die Diagramme alle in einzelne Figures gezeichnet werden sollen, oder per
subplot
in eine Figure.
Statt "d11", "d12" wäre es viel praktischer "d" zu verwenden und es als Array zu definieren. Einen Index im Namen zu verstecken ist immer ausgesprochen unpraktisch und verhindert den Zugriff über Schleifen.
Ich vermute Du suchst etwas wie:
Code:
for k = 1:24:length(d)
dv = d(k:k+23);
...
createfigure1(dv, pHv, Tv, Lv, BTMv);
end
Anmerkung: Farben werden mit 8 Bit Auflösung pro Kanal dargestellt. Die Angabe mit 15 Nachkommastellen ist deshalb übertrieben, 3 Stellen reichen locker:
Vielen Dank für deine Antwort, ich versuche nochmal etwas zu erläutern :
Meine Variablen Daten sind alle X und Y.
In meinem Fall entspricht X eine Anzahl von Tagen, deshalb d,
Y1 stellt den Verlauf des pH-Wertes, Y2 den Verlauf der Temperatur, yvector steht für die Lichtintensität und Y3 ist Wachstumsverlauf.
Und ich habe insgesamt 18 verschiedene Zeiträume, deshalb auch 18 verschieden X und Y's.
Danke schonmal für den Hinweise. Uns wurde das so im Studium beigebracht...Aber man lernt ja nie aus ... Jetzt dauert es auch nicht mehr so ewig
Und die Erstellung der Diagramme habe ich ja schon in einer Funktion ausgelagert, diese hatte ich ja auch schon beigefügt gehabt und die heißt createfigure1.m...
In dieser Funktion werden 4 subplots in einer Figure erstellt. Ich Brauche diese Figure aber insgesamt 18 mal mit je 4 subplots die verschiedene Inputs haben. Und ich suche eine schönere Lösung als 18 mal die Funktion zu kopieren und da manuell die Figure Nummer zu ändern.
Und ich hatte gedacht da gibt es eine schöne Lösung.
Den Tipp mit dem Array hatte ich schon von einem Freund bekommen, ich weiß nur nicht wie ich das umsetzen soll und was genau damit gemeint ist, denn ich Lese zu Beginn erst einmal meine Daten aus Excel ein (Wie dem Programmcode zu entnehmen ist). Das sind 136 Zahlen soweit ich weiß, Von diesen Zahlen möchte ich die ersten 24 in Figure 1 darstellen, die nächsten 22 in Figure 2, die nächste 14 in Figure 3 usw... Die Abstände bzw Intervalle sind unregelmäßig. Geht das dann überhaupt?
Die Funktion hat übrigens Matlab regeneriert, deshalb auch die vielen Kommastellen . Ich habe mein erstes Diagramm erstellt und dann im Diagramm einiges umgeändert und mir dann ein M-File erstellen lassen. Aber Danke für den Hinweis
Vielen Lieben Dank, Und ich hoffe mein Anliegen ist zu verstehen. Aber wahrscheinlich ist kopieren die einfachste Methode zum jetzigen Zeitpunkt.
Liebe Grüße
Lynn
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.