Betrag plotten ? < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo und einen guten Tag zusammen...habe hier folgende Funktion geplottet...(arbeite mit octave 2.5...) wenn ich den betrag plotte sollte eigentlich nur eine linie rausgegeben werden..stattdessen erhalte ich so zickzack kurven....wo jedoch die y achse immer nur einen wert aufweist....
kann mir jemand helfen ?
>> t=0:0.01:3;
>> y=3*exp(-i*2*pi*t+pi/4);
>> yr=real(y);
>> yi=imag(y);
>> abs=abs(y); %darum geht es sich
>> angle=angle(y);
>> subplot(2,2,1),plot(yr);
>> subplot(2,2,2),plot(yi);
>> subplot(2,2,3),plot(abs);
>> subplot(2,2,4),plot(angle);
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
danke
|
|
|
|
Hallo,
in Matlab taucht der Fehler nicht auf. Da gibt es eine schöne waagrechte Gerade.
Da hat jemand beim Programmieren von Octave nicht aufgepasst, fürchte ich. Es liegt wahrscheinlich daran, dass dort [mm] y_{min} [/mm] und [mm] y_{max} [/mm] gleich sind. Die Differenz ist 0 und schon gibt es jede Menge Ungemach...
Abhilfe:
Nach dem subplot(2,2,3) explizit die Achsen setzen, z.B.:
axis([0,350,5,10]);
Falls nun an dieser Stelle die Reste eines anderen Plots auftauchen, diese mit clearplot entfernen und mit dem Plotten von abs fortfahren.
Ach ja: Vielleicht solltest für abs und angle andere Namen (z.B. yabs, yangle) wählen. Sonst überschreibst du nämlich die Funktionen.
Gruß
Martin
|
|
|
|
|
ok..danke für die hilfe..jedoch wenn ich das mit dem axis einfüge, dann ändert octave das immer für alle graphen...???
danke
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:41 Di 24.10.2006 | Autor: | Martin243 |
Hallo,
dann müssen wir mal das Autoscaling wieder einschalten. Das geht mit einem einfachen "axis".
Die Plot-Aufrufe sehen dann so aus:
subplot(2,2,1),plot(yr);
subplot(2,2,2),plot(yi);
subplot(2,2,3),axis([0,350,5,10]),clearplot,plot(yabs);
subplot(2,2,4),axis,clearplot,plot(yangle);
Zumindest bei mir hat es funkioniert.
Gruß
Martin
|
|
|
|