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

Ploterstellung

 

DerThomas
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 10.01.2011, 11:39     Titel: Ploterstellung
  Antworten mit Zitat      
Hallo,

ich habe als Matlab-Anfänger leider ein paar Probleme bei der Erstellung meiner Plots im Gui.

Mein kläglicher Versuch einen Plot zu erstellen sieht so aus:

x-Achse: Zeit von 0 bis 1 Sekunde, Schrittweite: 0,0001 Sekunde
y-Achse: Motordrehmoment aus "ergebnis"-File, wurde von Dymola generiert.


Code:

a1h = axes('Parent',p21h,'Position',[.03 .10 .96 .85]);
t = 0:0.0001:1;
motormom = dymget(ergebnis,'shaftIN.w');
p1h = plot(t, motormom);
set(p1h,'Visible','on');
set(a1h,'Visible','on');
 


Dabei wird mir dann immer eine Fehlermeldung angezeigt die folgendes sagt:
"??? Error using ==> plot
Vectors must be the same lengths.

Error in ==> Getriebeauslegung>hSimulationCallback at 563
p1h = plot(t, motormom);

??? Error while evaluating uicontrol Callback"


Hat jemand eine Idee wie ich an der Fehlerbehebung arbeiten könnte?


Viele Grüße
Thomas
Private Nachricht senden Benutzer-Profile anzeigen


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 12:16     Titel:
  Antworten mit Zitat      
Hi,
versuchs mal mit

Code:

motormom = dymget(ergebnis,'shaftIN.w');
t=linspace(0,1,length(motormom));
 


Dann sollten die Vektoren die gleiche Länge haben.
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 10.01.2011, 13:37     Titel:
  Antworten mit Zitat      
Danke, dein Tipp hat funktioniert.

Habe es mittlerweile aber nochmal anders umgesetzt, nachdem ich gemerkt habe dass die Zeit im "ergebnis"-File auch ausgegeben wird.
Sieht nun so aus:

Code:

       a1h = axes('Parent',p21h,'Position',[.03 .10 .96 .85]);
       t=dymget(ergebnis,'Time');;
       motormom = dymget(ergebnis,'shaftIN.w');
       p1h = plot(t, motormom);
       set(p1h,'Visible','on');
       set(a1h,'Visible','on');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 10.01.2011, 14:22     Titel:
  Antworten mit Zitat      
Sorry für den Doppelpost, aber ich hätte noch eine Frage.

Und zwar würde ich gern in den selben Plot noch eine andere Datenkurve einzeichnen, dabei verschwindet aber leider immer die vorige.
Gibt es eine Möglichkeit beide gleichzeitig anzeigen zu können? Evtl sogar noch eine dritte?!

Code:

a1h = axes('Parent',p21h,'Position',[.05 .10 .94 .85]);
       t=dymget(ergebnis,'Time');;
       motordre = dymget(ergebnis,'shaftIN.w') * 9.55;
       p1h = plot(t, motordre);
       value = get(pm4h, 'Value');
            switch value
                case 1
                    drezu = dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55;
                    dreab = dymget(ergebnis,'mechanicsSimple6_1.b3.der(phi_rel)') * 9.55;
                case 2
                    drezu = dymget(ergebnis,'mechanicsSimple6_1.k1.der(phi_rel)') * 9.55;
                    dreab = dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55;
                otherwise
                    % error handling
            end
       p1h = plot(t, drezu);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 14:36     Titel:
  Antworten mit Zitat      
Code:

plot(A)
hold on
%alle nachfolgenden plots werden in den ersten gezeichnet, bis du hold %wieder auschaltest
plot(B)
 
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 10.01.2011, 14:41     Titel:
  Antworten mit Zitat      
herrlich!
Vielen Dank!


Und wenn du mir jetzt noch sagen kannst wie ich den Anzeigebereich der Y-Achse definieren kann bin ich überglücklich Smile

Würde gerne die Anzeige meines Diagrammes auf die Werte zwischen -100 und 8000 begrenzen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 15:05     Titel:
  Antworten mit Zitat      
Code:
YLIM([YMIN YMAX])
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 11.01.2011, 08:39     Titel:
  Antworten mit Zitat      
Vielen Dank!
Kompetente Hilfe Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 14.01.2011, 12:41     Titel:
  Antworten mit Zitat      
Ich hätte nun eine weitere Frage zur Definition des Anzeigebereichs der y-Achse.
Mit YLIM([YMIN YMAX]) kann ich den Bereich einschränken, jedoch suche ich für ein anderes Diagramm die Möglichkeit einen Maximalwert des Anzeigebereichs anzugeben. Zum Beispiel von -10000 bis +10000. Wenn jedoch kleinere Werte angezeigt werden und nicht der maximale Anzeigebereich benötigt wird (z.b. nur von 0 bis +3000), soll sich der Anzeigebereich selbstständig anpassen.

Hat jemand dazu eine Idee?
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: 14.01.2011, 13:30     Titel:
  Antworten mit Zitat      
Hallo Thomas,
Zitat:
Ich hätte nun eine weitere Frage zur Definition des Anzeigebereichs der y-Achse.
Mit YLIM([YMIN YMAX]) kann ich den Bereich einschränken, jedoch suche ich für ein anderes Diagramm die Möglichkeit einen Maximalwert des Anzeigebereichs anzugeben. Zum Beispiel von -10000 bis +10000.

Auch dafür ist YLIM sehr gut geeignet. Am hübschesten ist das direkt Schreiben in die Properties des AXES-Objekts:
Code:

AxesH = axes;
plot(rand(1, 10) * 20000 - 10000);
YLimit = get(AxesH, 'YLim');
set(AxesH, 'YLim', [max(-10000, YLimit(1)), min(10000, YLimit(2))]);
 

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 14.01.2011, 13:39     Titel:
  Antworten mit Zitat      
Super, damit hast deinen nächsten Orden verdient Wink

Vielen Dank!
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: 15.01.2011, 00:20     Titel:
  Antworten mit Zitat      
Hallo Thomas,

Zitat:
Super, damit hast deinen nächsten Orden verdient

Gerne! Ich wußte gar nicht, dass ich schon einen Orden haben... :-)

Gruß, Jan
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.