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

Grid Problem

 

Schasa
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2013, 14:03     Titel: Grid Problem
  Antworten mit Zitat      
Hallo zusammen,

das Forum hat mir bei der Behebung einiger Probleme sehr geholfen. Mein jetziges Problem habe ich hier allerdings noch nicht gefunden und eröffne deswegen ein neuen Threat.

Ich sitze an einem Auswerteprogramm. Im folgenden Codeabschnitt ist die Formatierung des Plots abgebildet. Ich möchte die Skalierung der Y-Achse logarithmisch darstellen. Das klappt auch soweit. Der Grid ist auf Minor gestellt. Jetzt das Problem... Bei einigen Plots wird der Y-Grid angezeigt, beim nächsten Schleifendurchlauf nicht. Ich habe durch Vergrößerung des Fensters ein Darstellungsfehler ausgeschlossen.

Der unten abgebildete Code wird öfters durchlaufen.

Code:
% Programmausschnitt Settings figure
scrsz = get(0,'ScreenSize');
    set(gcf,'Position',[1 scrsz(4)/3 scrsz(3)/2 scrsz(4)/1.8]);
    % Setting für logarithmischen Plot
    % set(gca,'units','normalized','outerposition',[0 0 1 1]);
    set(get(gca,'XLabel'),'String',xlabel,'fontsize',12,'FontName','arial');
    set(get(gca,'YLabel'),'String',ylabel,'fontsize',12,'FontName','arial');
    set(gca,'FontSize',12,'FontName','arial','LineWidth',1);
    str = sprintf('%2.2f',VDS1);
    str1 = sprintf(' - VDS: ');
    str2 = sprintf(' V');
    str = num2str(str);
    str = ['log ',search_string,str1,str,str2];
    title(str, 'fontsize',14);
       
    if log_plot == 1;
       set(gca,'XMinorGrid','On');
       set(gca,'YScale','log','YMinorGrid','On');
    else
        grid on
        grid minor
    end


Hoffe Ihr könnt mit der Beschreibung etwas anfangen.

Gruß
Schasa
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2013, 14:37     Titel:
  Antworten mit Zitat      
Hallo,

liegt das Problem im if- oder im else-Teil?
Füge mal am Ende ein drawnow ein, damit wird eine komplette Aktualisierung der Grafik erzwungen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schasa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2013, 15:00     Titel:
  Antworten mit Zitat      
Das Programm ist so aufgebaut:

for (dateien öffnen, zusammenfassen)
Datenverarbeitung
end
for (anzahl spannungen)
for (werte sammeln)
plot Daten
Setting plot
plot speichern (als fig sowie als png)
end
end

Es klappt alles wunderbar bis auf die Gridanzeige.
Der Plot wird am Ende der Schleife wieder geschlossen (close(gcf)).
Ist der Grid beim log-Plot von der Skalierung abhängig?



So schaut es..... Wie gesagt, eine Iteration danach oder davor wurde der Grid noch dargestellt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2013, 16:22     Titel:
  Antworten mit Zitat      
Hallo,

die Erklärung ist schön, geht aber leider weder auf meine Frage noch auf meinen Vorschlag ein, also nochmal:
Welchen Wert nimmt log_plot an? Wird also der if- oder der else-Teil ausgeführt?
Hast du mal das drawnow eingefügt? Hat sich dadurch etwas verändert?

Und Zusatzfrage: ist es bereits beim Plotten so, dass das Gitter fehlt, oder erst wenn man sich die gespeicherte Grafik ansieht?

Zitat:
Ist der Grid beim log-Plot von der Skalierung abhängig?

Diese Frage verstehe ich nicht. Natürlich hängt das Gitter davon ab, wo die Markierungen sind, aber das ist wohl nicht deine Frage?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schasa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2013, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

habe mich da nicht ordentlich ausgedrückt...

Meine Frage bezog sich auf die Schrittweite der Y-Achse.

In meinem gezeigten Beispiel und Problem wird der IF Teil ausgeführt. Ich kann am Anfang des Programms auswählen ob ich log-skaliere oder linear.
Drawnow hat keine Änderung gebracht.

Ich konnte das Problem aber lösen, indem ich die Schrittweite und die Limits vorgebe. Die Y-Achse wird so gesetzt, das Matlab nicht mit 10^-2, 10^-4.... sondern 10^-2, 10^-3.... skaliert. Das hat mein Problem erst einmal gelöst.

Kann sein das es eine ordentlichere Lösung gibt...

Ich danke trotzdem für die Hilfe... Smile

Gruß
Sascha
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.