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

Xlim Ylim

 

Tensao
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 27.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 09:06     Titel: Xlim Ylim
  Antworten mit Zitat      
Hallo will in meinem GUi ein Graph zeichnen, und manuel Xlim und Ylim eistellen, damit man die Ergebnisse besser sehen kann. Ich will, dass Plot nur bis Maximal und Minimalwerte gezeichnet wird und nicht automatisch, dann sieht man die abhängigkeit besser. Ich probiere es so:
Code:

Kp_plot(:,i)=handles.Kp(i,3);
plot(Kp_plot,'- .','parent',handles.steif_axes1);
ylim([0.11 0.12]);
 

trotzdem zeichnet Matlab über die Grenze, von 0.11 bis 0.14 z.B auch wenn die Werte nur bis 12.5 gehen.

wenn ich Ylim einfach so ausprobiere funktioniert es, bei mir in Gui nicht, liegt vielleicht an der Schleife (for), da ich mehrere Werte hintereinander zeichne??

danke
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.07.2010, 12:03     Titel:
  Antworten mit Zitat      
Hallo Tensao,

welche Schleife? Poste dochmal den gesamten relevanten Teil des Programms, andernfalls können wir doch nur raten.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Tensao
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 27.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 13:04     Titel:
  Antworten mit Zitat      
es werden mehrere dateien eingelsen und daraus der Wert Kp berechnet, in der Schleife wird für jede einzelne datei der Wert berechnet und dann gezeichnet, also nichts anderes, der code ist lang da viele Umformungen gemacht werden. Für jede datei werden drei werte berechnet und in Matrix gespeichert, also am ende bekomme ich drei Spalten und mehrere Zeilen, hängt von Datenanzahl.

Der code was ich zuvor gepostet habe sollte richtig sein oder?? Ich meine das mit Ylim.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.07.2010, 18:30     Titel: Re: Xlim Ylim
  Antworten mit Zitat      
Hallo Tensao,

Tensao hat Folgendes geschrieben:

Code:

Kp_plot(:,i)=handles.Kp(i,3);
plot(Kp_plot,'- .','parent',handles.steif_axes1);
ylim([0.11 0.12]);
 

Dieser Code ist entweder richtig oder falsch. Da er offenbar nicht das von dir erwartete Ergebnis produziert, ist enteder der Code falsch, oder Deine Erwartung. Da Du den Code nicht posten möchtest, rate ich mal, dass Deine Erwartung falsch ist.

Das oben gezeigte PLOT-Kommando zeichnet eine Kurve in das (wahrscheinlich AXES-)Objekt [handles.steif_axes_1]. Der danach folgende YLIM Befehl ändert die Y-Limits des aktuellen AXES Objektes. Es kann von vielen Faktoren abhängen (Visibility, Handle-Visibility, NextPlot Property des AXES Objektes, ...), welches die aktuelle AXES ist. Im Code hätte ich das sehen können, deshalb habe ich danach gefragt. ;-)

Einfache Lösung: Erstelle das AXES-Objekt [handles.steif_axes_1] mit:
Code:
handles.steif_axes_1 = axes('YLimMode', 'manual', ...
    'YLim', [0.11 0.12], 'NextPlot', 'add');

Eine andere Idee wäre es, nicht den allgemeinen Befehl YLIM zu benutzen, sondern direkt das entsprechende Property mit SET(AxesHandle, 'YLim', [lower, upper]) zu setzen. Schaue auch mal in den Befehl YLIM rein: "edit ylim.m".

Viel Erfolg, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Tensao
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 27.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2010, 08:47     Titel:
  Antworten mit Zitat      
Danke schön für die Hilfe, mit set(...) funktioniert es .
mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Reference

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2010, 09:27     Titel: noch einfacher: axis tight
  Antworten mit Zitat      
mit dem Befehl

axis tight

werden die Achsen automatisch auf den Wertebereich gesetzt.
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.08.2010, 11:04     Titel:
  Antworten mit Zitat      
ich habe das gleiche Problem. Zwar habe ich 3D-Diagramm. Mit ylim oder set wird das Problem nicht gelöscht.

Kann jemand mir helfen

Danke
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.08.2010, 12:43     Titel:
  Antworten mit Zitat      
hier ist der Code

Code:

for k=1:1:length(Stator_versatz_vec)
    Eingabedaten.Versatz_w0=Stator_versatz_vec(k)*(Eingabedaten.r_stator-Eingabedaten.r_scheibe);
    Eingabedaten.Versatz_v0=Stator_versatz_vec(k)*(Eingabedaten.r_stator-Eingabedaten.r_scheibe);
%-------------------------------------------------------------------------%
%Alle Startbedingungen sind Null
x0=zeros(8,1);
x0(1)=Eingabedaten.Versatz_w0;
x0(2)=Eingabedaten.Versatz_v0;

%-------------------------------------------------------------------------%
%Optionen für den Löser
options=odeset('Maxstep',1/MI,'Events',@Abbruchbedingung_Laval_stat);

%-------------------------------------------------------------------------%
%Ausführung des Lösers
Ergebnis_stat=ode23tb(@DGL_loeser_Laval_stat,Tspan,x0,options);

%-------------------------------------------------------------------------%
%Umschreiben der Ergebnisse in globaler Struktur
erg_points=linspace(0,max(Ergebnis_stat.x),max(Ergebnis_stat.x)*MI);
Ergebnis_stat_gleich=deval(Ergebnis_stat,erg_points);

%-------------------------------------------------------------------------%
%Umschreiben der Ergebnisse in globaler Struktur
Loesung.t=erg_points;
Loesung.x=Ergebnis_stat_gleich;

%-------------------------------------------------------------------------%
%Bereitstellen des komplexen Lösungsvektors des Rotors
R_rotor_vektor=((Loesung.x(1,:)-Eingabedaten.Versatz_w0) +...
             1i*(Loesung.x(2,:)-Eingabedaten.Versatz_v0));
   
%Bestimmen der Länge des Signals
Laenge=floor(0.95*length(R_rotor_vektor));

%Bereitstellen des komplexen Lösungsvektors des Rotors
R_rotor_vektor_dach=((Loesung.x(1,(end-Laenge):end)-Eingabedaten.Versatz_w0) +...
                  1i*(Loesung.x(2,(end-Laenge):end)-Eingabedaten.Versatz_v0));

%Bestimmen der Länge des Signals
Laenge_dach = length(R_rotor_vektor_dach);        
         
%Bestimmen des nächsten Exponenten von zwei, der innerhalb der Länge des
%Signals liegt
NFFT = 2^nextpow2(Laenge_dach);

%Berechnen der Fast-Fourier-Transform    
R_rotor_fft= fft(R_rotor_vektor_dach,NFFT+1)/Laenge_dach;

%Festlegen der Frequenzachse; ergibt sich aus minimaler Rechenschrittweite    
f = MI/2*linspace(-1,1,NFFT+1);
%f = linspace(-MI/2,MI/2,NFFT+1);

%-------------------------------------------------------------------------%
%Einfluss der Drehzahl auf Spektrum
Stationaerer_Lavalrotor=findobj(GUI_Vergleich_Multi,'Type','axes','Tag', 'Stationaerer_Lavalrotor');
axes(Stationaerer_Lavalrotor)

plot3((Eingabedaten.Versatz_w0/(Eingabedaten.r_stator-Eingabedaten.r_scheibe))*ones(length(R_rotor_fft)),(2*pi*f)/Eingabedaten.omega,[2*abs(R_rotor_fft(NFFT/2+1:end))/Eingabedaten.eps,2*abs(R_rotor_fft(1:NFFT/2))/Eingabedaten.eps],'b')
xlabel('r_V_e_r_s_a_t_z / s')
ylabel('\Omega_w_h_i_r_l / \Omega')
zlabel('r_R_o_t / \epsilon')
xlim([0.0 1.0])
set(gca,'YDir','Reverse')
set(gca, 'YLim', [-8, 8])
set(gca,'YTick',-8:2:8)
%zlim([0.0 20.0])
view([-60, 45])
hold on
grid on

set(Stationaerer_Lavalrotor,'Tag','Stationaerer_Lavalrotor');
 
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.08.2010, 13:00     Titel:
  Antworten mit Zitat      
Hallo Gast,

Gast hat Folgendes geschrieben:
ich habe das gleiche Problem. Zwar habe ich 3D-Diagramm. Mit ylim oder set wird das Problem nicht gelöscht.


Bitte beschreibe, wieso welches Problem nicht gelöst wird. Eine Beschreibung der Unterschiedes zwischen den Erwartungen und den Resultaten wäre hier hilfreich.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2010, 14:26     Titel: Xlim-Ylim
  Antworten mit Zitat      
Hallo Jan und Forum-Teilnehmer,

wie gesagt, ich habe das gleiche Problem wie Tensao, aber in 3D-Diagramm.
ich will in Gui ein Diagramm zeichnen, und manuel Xlim und Ylim einstellen, Ich will, dass Plot nur bis Maximal und Minimalwerte gezeichnet wird.

Dabei schicke ich das Bild als Beispiel. Bei der X-Achse funktioniert es mit xlim aber bei der Y-Achse funktioniert nicht. Wie im Bild habe ich für Y-Achse ymax=2 und ymin=-2 eingestellt. Die Achsgrenze wurde richtig eingestellt. Aber Matlab zeichnet trotzdem übder diese Grenze. Ich habe auch versucht, set zu verwenden. Es geht auch nicht.

Danke im Voraus

lg
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2010, 14:30     Titel: Ylim
  Antworten mit Zitat      


3D-Diagramm.jpg
 Beschreibung:

Download
 Dateiname:  3D-Diagramm.jpg
 Dateigröße:  77.4 KB
 Heruntergeladen:  3270 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.08.2010, 01:49     Titel:
  Antworten mit Zitat      
Hallo Gast,

setze die Property 'clipping' der LINE-Objekte auf 'on'.
Eigentlich sollte dies als Default so eingestellt sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2010, 08:45     Titel: Clipping
  Antworten mit Zitat      
Hallo Jan,

Danke für Deine Hilfe.

Ich habe clipping auf on gesetzt. Es geht leider nicht. Kannst du bitte Code an schauen, ob ich fehler gemacht habe

Code:

plot3((Eingabedaten.Versatz_w0/(Eingabedaten.r_stator-Eingabedaten.r_scheibe))*ones(length(R_rotor_fft)),(2*pi*f)/Eingabedaten.omega,[2*abs(R_rotor_fft(NFFT/2+1:end))/Eingabedaten.eps,2*abs(R_rotor_fft(1:NFFT/2))/Eingabedaten.eps],'b','clipping','on')
 


oder

Code:

set(gca,'clipping','on')
 


Beide habe ich versucht.

Es fällt mir ein, dass ich vielleicht mit waterfall statt plot3 benutzen soll. Hast du mir was zu empfehlen?

Danke
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2010, 16:27     Titel: :(
  Antworten mit Zitat      
Hi zusammen,

kann jemann noch was vorschlagen? Forum-Meister, Forum-Century und Forum-Anfänger....

gruß
 
Mac-Burner
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2011, 17:52     Titel:
  Antworten mit Zitat      
Das gleiche Problem habe ich auch gerade. Bei mir sieht es so aus als ob das Clipping in einem Panel nicht funktioniert. Wenn ich den Plot einfach mitten ins Figure lege geht's...

Keine Ahnung was ich machen soll. Vielleicht hatja mittlerweile jemand eine Lösung.
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.