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

Legende dynamisch (automatisch) erstellen

 

Martinuk
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2012, 16:35     Titel: Legende dynamisch (automatisch) erstellen
  Antworten mit Zitat      
Hallo,

ich weiß, dass dieses Thema schon öfters diskutiert worden ist, aber so ganz verstehen was nun die beste Vorgehensweise ist, tu ich nicht.

Ich möchte gerne folgendes. Ich habe mehrere Dateien in einem Cell-Array zusammengefasst, welche ich in einem Schleifendurchlauf plotte. Das funktioniert soweit alles wunderbar. Fürs bessere Verständnis vllt. dazu einen vereinfachten Code.

Code:

figure(1)
set(gcf,'Name', 'Analyse')

for i=1:length(Daten) % Länge = zB. 5
    subplot(2,1,1)
        plot(Freq{i}, abs(squeeze(Daten{i}(1,1,:))));
        title('Betrag'), grid on, hold all
        xlabel('Freq [Hz]'), ylabel('Mag'),

    subplot(2,1,2)
        plot(Freq{i}, angle(squeeze(Daten{i}(1,1,:))));
        title('Winkel'), grid on, hold all
        xlabel('Freq [Hz]'), ylabel('Ang [rad]'),

    % hier kommt der Teil mit der Legende
    % zur Erstellung der Legende ist ein Cell-Array namens
    % 'Dateien' vorhanden, wo alle Dateien mit Pfad gelistet sind
    % Aus einem Teil des Dateinamen soll die Legende erstellt werden
end
 


Wie man dem Code entnehmen kann, habe ich noch nichts bzgl. der Legende eingefügt. Diese soll mit jedem Schleifendurchlauf dynamisch/automatisch erweitert werden. Ich möchte aber nicht vor der For-Schleife ein Cell-Array anlegen mit den möglichen Legendennamen. Diese sind nämlich die "letzten" 4-Zeichen des jeweiligen Dateinamen.

Dateiname: Name_Mes1.txt --> Legendenname wäre also Mes1 -> siehe Kommentar im Code bzgl. Legende.
Die Legende soll auch in beiden Subplots aufscheinen (ist aus dem Code-Schnipsel nicht so ersichtlich).

Meine Frage ist nun, wie kann man die Legende am elegantesten erzeugen? Ich hoffe ich konnte einigermaßen verständlich rüberbringen was ich gerne möchte. Ansonsten bitte einfach fragen.


Ich hoffe und freue mich auf konstruktive Antworten. Den Code um den Legenden-Teil zu erweitern wäre wünschenswert.

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen


mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 02.08.2012, 11:10     Titel:
  Antworten mit Zitat      
Hi Martinuk,

Ich würde es folgendermaßen probieren.
Innerhalb der for-Schleife ein cell-array mit den legendeinträgen erstellen und dieser dann direkt aktualisieren.
Also etwa so:
Code:


figure(1)
set(gcf,'Name', 'Analyse')

for i=1:length(Daten) % Länge = zB. 5
    subplot(2,1,1)
        plot(Freq{i}, abs(squeeze(Daten{i}(1,1,:))));
        title('Betrag'), grid on, hold all
        xlabel('Freq [Hz]'), ylabel('Mag'),
        L1{i} = Dateien{i}(6:end-4);
        legend(L1);
    subplot(2,1,2)
        plot(Freq{i}, angle(squeeze(Daten{i}(1,1,:))));
        title('Winkel'), grid on, hold all
        xlabel('Freq [Hz]'), ylabel('Ang [rad]'),
        L2{i} = Dateien{i}(6:end-4);
        legend(L2);

    % hier kommt der Teil mit der Legende
    % zur Erstellung der Legende ist ein Cell-Array namens
    % 'Dateien' vorhanden, wo alle Dateien mit Pfad gelistet sind
    % Aus einem Teil des Dateinamen soll die Legende erstellt werden
end

Das soll nur ein Denkanstoss sein, aber den Code nicht überprüft. Sollte aber gehen Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2012, 15:41     Titel:
  Antworten mit Zitat      
Hallo mawi,

danke für die Antwort. Die Vorgehensweise mit dem cell-Array ist im Forum schön öfters vorgeschlagen worden denke ich und scheint wohl eine einfache und elegante Lösung zu sein.

Ich habs jetzt auch so umgesetzt, funktioniert wunderbar.

Schöne Grüße
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.