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

Problem mit legend()

 

n.force
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 31.01.2014, 11:09     Titel: Problem mit legend()
  Antworten mit Zitat      
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?

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 31.01.2014, 13:29     Titel:
  Antworten mit Zitat      
es ist immer einfacher wenn du den code postest der die fehler verursacht. so kann ich das nicht nachvollzihen.
Code:
x=1:10
x2=(1:10)+3
plot(x,'.')
hold all
plot(x2)
legend('punkte','linie')

bei mir funktioniert alles
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 31.01.2014, 13:43     Titel:
  Antworten mit Zitat      
Da hast du recht. Sorry für die konfuse Fragestellung Smile

Hier also das Problem:

Code:
% Minimalbeispiel: Problem mit Legende

clc;
clear all;
close all;

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')


Wenn du das script ausführst, siehst du sicher was ich meine.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 31.01.2014, 13:59     Titel:
  Antworten mit Zitat      
Code:
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
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 31.01.2014, 14:02     Titel:
  Antworten mit Zitat      
Super,
und danke für die tollen Hinweise. Werd ich dann auch so umsetzen.

Danke und bis dann,
Steffen
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.