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:
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??
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.
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:
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".
%-------------------------------------------------------------------------%
%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.01.0]) set(gca,'YDir','Reverse') set(gca, 'YLim', [-8, 8]) set(gca,'YTick',-8:2:8)
%zlim([0.020.0]) view([-60, 45]) hold on
grid on
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
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.08.2010, 14:26
Titel: Xlim-Ylim
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.
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.
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.