Verfasst am: 31.01.2014, 11:09
Titel: Problem mit legend()
Hallo,
ich habe einen Vektor mit Zahlen. Diesen plotte ich mit plot(vektor), so dass die x-Achse den jeweiligen Index anzeigt und auf der y-Achse der Wert steht. Die Darstellung beinhaltet dann nur Punkte. Weiterhin habe ich eine linie mit line() darin geplottet.
Nun möchte ich mit legend('punkte','linie') die graphen beschriften. Nur leider wir in der legende neben "Punkte" UND "Linie" ein Punkt angezeigt. Neben "Linie" sollte doch eige tlich die die Linie abgebildet sein.
Weiß jemand was ich falsch mache oder übersehen habe?
A = diag([-1-2-3-4-5-6-7-8-9-10]); % erzeuge stabile Systemmatrix
B = rand(size(A,1),1); % zufallige rechte Seite für Lyapunovgleichung
X = lyap(A,B*B'); % Lösung der Lyapunovgleichung
[U,S,V] = svd(X); %S enthält Eigenwerte von X
semilogy(S,'rs') %plot der Eigenwerte
hold on
line([0,length(S)],[eps,eps],'LineWidth',1) %plot der Maschinengenauigkeit
legend('Eigenwerte von X','Machinengenauigkeit eps')
A = diag([-1-2-3-4-5-6-7-8-9-10]); % erzeuge stabile Systemmatrix
B = rand(size(A,1),1); % zufallige rechte Seite für Lyapunovgleichung
X = lyap(A,B*B'); % Lösung der Lyapunovgleichung
[U,S,V] = svd(X); %S enthält Eigenwerte von X
semilogy(diag(S),'rs') %plot der Eigenwerte
hold on
line([0,length(S)],[eps,eps],'LineWidth',1) %plot der Maschinengenauigkeit
legend('Eigenwerte von X','Machinengenauigkeit eps')
S ist bei dir eine 10x10 matrix. es werden also bei dir 11 objekte geplottet. wenn du also nur 2 namen angiebst werden natürlich die ersten 2 benannt. was immernoch S ist. darum das rechteck.
anmerkung:
clear all close all clc ist ein sehr schlechter anfang für ein script. das sollte man nur im notfall benutzen. eigendlich ist sowas nicht nötig und falls doch hast du vorher schlecht programmiert. es verlangsamt nicht nur den code sondern macht das debuggen unmöglich.
2. anmerkung. length ist natürlich ein gültiger befehl aber er ist mit vorsicht zu genießen da er immer die größere dimension ausgibt meist führt das zum gewünschten ergebniss aber halt nicht immer. grade wenn man nicht weis welche dimension die ergebnisse haben ist es besser size zu verwenden unter der angabe der dimmension.
grüße winkow
_________________
Super,
und danke für die tollen Hinweise. Werd ich dann auch so umsetzen.
Danke und bis dann,
Steffen
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.