|
Lab21 |

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 13:21
Titel: Matlab schwierigkeiten
|
 |
Hallo leute ich arbeite grad ein wenig mit Matlab und habe grad ein Problem:
Ein kleiner Programmausschnitt:
t= 0:1e-3:0.5;
[xtideal]= genRechteck(A,f,t);
figure
plot( t , xtideal );
Jetzt lautet die Aufgabenstellung so:
Plotten Sie xtideal, beschriften Sie die Achsen und fügen Sie in den Titel die Amplitude und die
Frequenz des Signals automatisch ein. Erweitern Sie die y-Achse mit dem axis-Befehl so, dass sie
von A-0.1 bis A+0.1 gezeichnet wird.
Das mit dem plotten habe ich ja noch hinbekommen.
Aber wie soll genau das xlabel und ylabel aussehen ?
Und wie mache ich das genau mit dem Axis Befehl.
Kennt ihr euch ein wenig aus?
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 13:35
Titel:
|
 |
Hallo,
vermutlich steht bei dir A für die Amplitude und f für die Frequenz. Die beiden automatisch in den Titel einzufügen geht zum Beispiel mit sprintf. Kleines Beispiel zum Lernen:
Der axis-Befehl funktioniert folgendermaßen (doc axis hilft hier)
Du sollst das nun so anpassen, dass du die Werte ymin mit -A-0.1 und ymax durch A+0.1 ersetzt.
Was bei xlabel und ylabel stehen soll, das weiß ich aber aus dem Beispiel heraus auch nicht. Das kommt eben drauf an, was geplotted wird
Viele Grüße.
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 15:48
Titel:
|
 |
Vielleicht kannst du mir durch meinen kompletten code besser helfen :
In der musterlösung haben sie das gemacht :
Warum haben dir hier :
min(t) , max(t) geschrieben ?
axis([min(t) max(t) -A-0.1 A+0.1])
Das xlabel und y label verstehe ich überhaupt nicht.
Kannst du mir das erklären ?
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 16:23
Titel:
|
 |
|
 |
|
Hallo,
ja, das kann ich dir erklären, wenn du das wünscht. Vielleicht wäre es aber hilfreicher, wenn du dich da selbst durcharbeitest.
1) axis():
Deine Lösung wird so nicht funktionieren, da xmin und xmax vermutlich nicht existieren. Da muss man sich was überlegen, die Musterlösung nimmt dafür einfach den kleinsten bzw. größten verwendeten Wert auf der X-Achse. Der andere Teil ist ja eigentlich das, was ich dir vorgeschlagen habe.
2) xlabel, ylabel
Es wird im Plot xideal über t aufgetragen. Daher will man die X-Achse mit t beschriften und die y-Achse mit xideal. Das \it sorgt dafür, dass der Text danach Kursiv ist. Nach dem / kommt nich die Einheit hinzu. Der Unterstrich sorgt dafür, dass das nachfolgende Zeichen im Index steht. Will man mehr als nur ein Zeichen tieferstellen, so macht man das mit _{das hier steht alles im Index}.
3) Mit dem Titel hast du dich ja noch gar nicht befasst. Statt sprintf kann man natürlich auch num2str benutzen und die einzelnen Strings als Vektor aneinanderhängen. num2str(A) macht genau das, was man vermutet: es wandelt einen numerischen Wert (num) in einen String (str) um.
Viele Grüße.
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 16:39
Titel:
|
 |
Ah ok. Jetzt verstehe ich es .
Kannst du mir nochmal von deinem ersten Beitrag erklären was dieses plot(r*rand bewirkt ?
Ich bin leider Anfänger daher weiß ich das nicht.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 17:08
Titel:
|
 |
Hallo,
na das steht doch im Titel des Plots, wenn du das ausführst . Es werden N Zufallszahlen zwischen 0 und r erzeugt, die dann direkt geplotted werden. Ich brauchte nur irgendein Beispiel, das zeigt, wie man automatisch passende Titel zu den Plots erstellt (weil das Teil deiner Aufgabe war) - ohne dir direkt deine eigene Aufgabe zu lösen. Das solltest du ja selbst schaffen.
Viele Grüße.
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 18:04
Titel:
|
 |
Hallo nasr,
ich wollte es auch mal über deinen Weg probieren :
Würde es so passen ?
Was bewirkt das hier ?
A = 15;
f = 100;
Kann ich hier einfach irgend einen Wert übergeben ?
Oder wie funzt das genau?
plot(f*rand(A,1))
Warum schreibst du bei dem Befehl am ende eine 1 ?
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 18:26
Titel:
|
 |
Hallo,
für deine Aufgabe brauchst du kein rand(). Das war nur, um irgendwelche Werte zu plotten. Bei dir würdest du nun 15 Punkte (da A = 15) zwischen 0 und 100 (da f = 100) plotten.
Dein Titel ist so noch nicht richtig. Schau dir mal die Hilfe zu sprintf an (doc sprintf).
Bei dir wäre das wie folgt:
Man kann angeben, mit w elcher Genauigkeit (i.e. mit wievielen Stellen) die Zahlen dann im String auftauchen sollen. f3.1 bedeutet sowas wie: insgesamt 3 Zeichen, davon ein Zeichen nach dem Punkt (der Punkt selbst ist auch ein Zeichen). Aber nimm einfach num2str.
Viele Grüße
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 18:45
Titel:
|
 |
Meine Aufgabe geht noch ein weiter :
Schreiben Sie eine Funktion FourierRechteck, die mit Hilfe der Fourier-Reihe aus der Gleichung
ein approximiertes Rechteck-Signal xN(t ) für den Zeitvektor t, die Frequenz f, die Amplitude A und
N Harmonische berechnet und im Vektor xNt speichert.
Die Gleichung poste ich als datei.
Mein code :
Würde der code so stimmen ?
Beschreibung: |
|
 Download |
Dateiname: |
fo.png |
Dateigröße: |
13.08 KB |
Heruntergeladen: |
372 mal |
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 21:11
Titel:
|
 |
Hallo,
ich denke nicht, dass deine aufgeschriebene Formel mit dem Matlabcode übereinstimmt. Bis jetzt multipliziert innerhalb deiner Schleife, du addierst nicht die einzelnen Summanden auf.
Pseudomäßig etwa so:
Das solltest du alleine versuchen, mit Leben zu füllen.
Viele Grüße.
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.11.2013, 23:12
Titel:
|
 |
xNt = xNt+ summand;
Aber wieso wird hier zuerst addiert und dann mal nehmen ?
Das verstehe ich leider nicht.
Tut mir leid ,dass ich dich dauernd nerven muss.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.11.2013, 09:54
Titel:
|
 |
Also deine Funktion Xn(t) besteht aus einem Faktor a = 4*A/pi und einer Summe S = ,die also aus N+1 Summanden besteht. Insgesamt also
Um das zu berechnen, kann man zunächst mal die Summe berechnen und das Ergebnis davon mit dem Faktor a multiplizieren. Wie gesagt, du bildest gar keine Summe.
Das, was du da geschrieben hast, ist meiner Meinung nach die Lösung zu .
Viele Grüße
Edit: Davon abgesehen würde ich das ganz ohne Schleife lösen
|
|
|
Lab21 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 38
|
 |
|
 |
Anmeldedatum: 10.11.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.11.2013, 12:30
Titel:
|
 |
Danke . Der letzte Weg ist glaub ich der einfachste .
|
|
|
|
|
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.
|
|