|
|
Plot Funktion funktioniert nicht, Vektor definieren |
|
Thomas123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.12.2011, 19:18
Titel: Plot Funktion funktioniert nicht, Vektor definieren
|
 |
|
 |
|
Hallo allerseits,
ich habe das Problem dass die Plotfunktion von Matlab nicht funktioniert. In meinem Matlab-Programm werden zu einer Eingangsvariablen a mehrere Ausgabewerte berechnet. Diese werden bei Entfernen des Semikolons auch auf dem Bildschirm angezeigt. Je nach Schrittweite (Die Berechnung erfolgt mit Hilfe einer for-Schleife für die Eingangsvariable a) erhalte ich dann eine Vielzahl von Ausgabewerten (Pro Schleifendurchlauf ein Wert Bsp: (b(1),b(2)....b(n)).
Mit Hilfe der line-Funktion lassen sich diese auch graphisch darstellen.
Bsp.
x4 = b;
y4 = c;
line([x4],[y4],'Marker','+')
Falls ich die plot-Funktion verwende, wird zwar ein Graphik Fenster geöffnet, dieses bleibt aber leer.
Die Berechnung der Werte b,c.. erfolgt über mehrere Programmzeilen inklusive if-Verzweigungen und Lösen von Gleichungssystemen. Ich möchte nun 2 Vektoren x = [b(1),b(2),....(b(n)], y = [c(1),c(2),....c(n)] bilden, die automatisch mit den berechneten Werten befüllt werden und diese dann "plotten".
Wie geht das? In der Matlab Hilfe habe ich keine Lösung gefunden.
Mit freundlichen Grüssen und Dank im Voraus
Thomas
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.12.2011, 20:07
Titel:
|
 |
Hallo,
wenn x und y die "befüllten" Vektoren sind, sollte
gehen.
Wenn du mehrere Plots in einer Schleife machen möchtest und die Plots nicht überschrieben werden sollen, brauchst du
Grüße,
Harald
|
|
|
Thomas123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.12.2011, 20:42
Titel:
|
 |
Hallo Harald,
danke für die Hilfe. Mit dem "Hold on" Befehl erhalte ich nun alle Punkte in der Grafik eingetragen. Jetzt würde ich noch gerne die Punkte mit einer Linie verbinden. Mit plot(x,y,'-') komme ich nicht weiter. Pro Schleifendurchgang wird ein Punkt gesetzt, die Verbindungslinie zweier benachbarter Punkte fehlt aber (da in der Schleife ja nur ein Punkt berechnet wird).
Wenn ich wüsste, wie ich die Vektoren mit den berechneten Werten befülle, wäre ich glaube ich am Ziel.
Gruß Thomas
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.12.2011, 23:20
Titel:
|
 |
Hallo,
ja, wo ist denn das Problem beim Befüllen?
Grüße,
Harald
|
|
|
thomas123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.01.2012, 19:31
Titel:
|
 |
Hallo Harald,
Vieln Dank für deinle Hilfe. Leider funktioniert es noch nicht.
Ich habe dein Beispiel mal in mein Programm eingebaut.
Ich habe die Semikolons in den Zeilen x6..,y6..,x6(I), und y6(I) entfernt.
Durch den Befehl zero wird ein Nullvektor erstellt und durch die Schleife wird dann das zuvor berechnete Ergebnis eingetragen. Leider wird immer der gleiche Zahlenwert eingetragen (Bsp.: 0 0 0 0 ; 1 0 0 0; 1 1 0 0...) Wenn die letzte Stelle des Zeilenvektors besetzt ist, beginnt das Spiel von vorne mit dem Einsatz des zweiten berechneteten Wertes.
Bsp. Für y6 werden die Werte 1,2,3,4 durch die erste for-Schleife berechnet.
Es sollte dann so aussehen:
y6 = (0 0 0 0)
y6 = (1 0 0 0)
y6 = (1 2 0 0)
Stattdessen sieht es so aus:
y6 = (0 0 0 0)
y6 = (1 0 0 0)
y6 = (1 1 0 0)
...
y6 = (0 0 0 0)
y6 = (2 0 0 0)
...
Gruß Thomas
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.01.2012, 23:42
Titel:
|
 |
Hallo,
das ist ja auch kein Wunder?
Wie sollen die Vektoren verschiedene Elemente enthalten, wenn du immer das gleiche reinschreibst? Du musst die for-Schleife schon mit denen kombinieren, in denen du die verschiedenen Werte für alpha und ga berechnest.
Statt die Strichpunkte zu entfernen ist es sinnvoller, den Debugger zu verwenden.
Grüße,
Harald
|
|
|
thomas123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.01.2012, 21:07
Titel:
|
 |
Hallo,
habe die Lösung gefunden. Hilfreich war ein einfaches Beispiel zum Ausprobieren der zero-Funktion (x^2, zeros(1,4)...) . Die Schrittweite innerhalb der for-Schleife sollte auch ganzzahlig sein, da es sonst zu Problemen beim Befüllen des Nullvektors kommen kann. (7.000 ist für Matlab ungleich 7)
Im Vergleich zur Line-Funktion innerhalb der for-Schleife ist mein Programm auch jetzt viel schneller. Liegt auch vielleicht daran, dass das Grafikfenster nicht bei jedem Schleifendurchlauf angepasst werden muss.
Gruss Thomas
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|