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

Plotten im bestehenden Graphen durch mehrfaches Ausführen

 

niedigor
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2015, 09:05     Titel: Plotten im bestehenden Graphen durch mehrfaches Ausführen
  Antworten mit Zitat      
Guten Morgen,

ich stehe gerade mit einem kleinem Problem auf dem Schlauch.

Meine Aufgabe besteht darin, ein Programm, welches durch den Befehl "uifind" Dateien plottet, umzuschreiben, sodass man anstatt mehrere Dateien auf einmal auszuwählen, die Möglichkeit hat zu einem bestehenden Plot neue Dateien durch das mehrfache Ausführen des Programms hinzu zu fügen.

Durch "hold" ist das auch soweit möglich, nur werden die Graphen immer in der selben Farbe geplottet und die Legende bezieht sich ausschließlich auf den zuletzt geplotteten Graphen.

Kennt jemand eine Möglichkeit das Problem zu lösen?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 08.09.2015, 09:17     Titel:
  Antworten mit Zitat      
Hallo niedigor,

kannst du bitte deinen bisherigen Code mal zeigen? Ansonsten ist es recht schwierig zu urteilen was bereits da ist und was noch nicht. Spontan würde ich sagen das hast den Befehl

Code:


verwendet, wo hingegen

Code:


dazu führt das die Graphen in verschiedenen Farben geplottet werden.

Gruß,
Marvin
Private Nachricht senden Benutzer-Profile anzeigen
 
niedigor
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2015, 09:34     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Rückmeldung,
ich musste durch '...' ein paar Namen unkenntlich machen, aber diese dürften an sich auch nicht zu der Lösung beitragen.

Die Farben werden durch eine Reihenfolge vergeben, wenn ich aber das Programm jedes mal von vorne starte, wählt er immer die erste Farbe, in diesem Fall schwarz.

Kann man das durch einen Loop umgehen ?


Beste Grüße





Code:
colorstr = {'k','m','c','r','g','b','k','y','m'};




fpath='....';
file= {uigetfile([fpath '\....'])}
   

[a, size_file] = size(file);  
daten={size_file};
   
for i=1:size_file
   
    daten{i}='...'(file{i});
    daten{i}.q1 = zeros (daten{i}.counts,1);
    daten{i}.m1 = zeros (daten{i}.counts,1);
   
   
    for j=1:daten{i}.counts
        specnum = ['spectrum' num2str(j)];
        x = 1*10^(-3)+daten{i}.(specnum).spectrum.dt*(0:1999);    
        daten{i}.q1 (j,1) = trapz(x,daten{i}.z (j,:));
        daten{i}.m1 (j,1) = max(daten{i}.(specnum).spectrum.value);
        daten{i}.tion(j) = daten{i}.(specnum).parameter.tion;
    end
    semilogx(daten{i}.tion,daten{i}.q1,'color',colorstr {i},'LineWidth',2)
    hold on
    position_=strfind(file{i},'_')
    beschriftung{i}=file{i}(1:position_(1)-1)
end
xlabel('...','FontSize',30,'FontWeight','bold')
ylabel('...','FontSize',30,'FontWeight','bold')
grid on
set(gca,'FontSize',20,'FontWeight','bold')
title ('...','FontSize',30,'FontWeight','bold')
legend(beschriftung)
xlim ([0 40000])

edit winkow: bitte code umgebung benutzen
Private Nachricht senden Benutzer-Profile anzeigen
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 08.09.2015, 09:45     Titel:
  Antworten mit Zitat      
Hi,

kannst du deinen Code bitte zwischen die Code-Buttons schreiben? Wenn du eine Nachricht schreibst, befindet sich über dem Schreibfeld ein Hinweis extra dafür Wink Das macht das Lesen vom Code einfacher Smile

Also angenommen dein Programm kommt beim ersten Durchlauf bis m=magenta, dann soll es beim nächsten Ausführen mit c=cyan weitermachen mit den Farben?

Falls das so gemeint ist, würde ich mit

Code:


eine globale Variable erstellen, deinen bisherigen Code in eine Funktion drücken in der die Farben mit

Code:
colorstr{1,k}


wie bisher aufgerufen werden und irgendwo noch ein

Code:


der dann weiterzählt für dich. Hilft das?

EDIT:
Besser keine i und j als Laufvariablen verwenden, dass sind nämlich die Zeichen für die imaginäre Einheit in MatLab. Da wurde ich auch erst letztens eines Besseren belehrt Very Happy
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.