diff --git a/programming/exercises/vectors_matrices.tex b/programming/exercises/vectors_matrices.tex index 1be01b0..89add8a 100644 --- a/programming/exercises/vectors_matrices.tex +++ b/programming/exercises/vectors_matrices.tex @@ -42,17 +42,20 @@ mir zugeschickt werden (jan.grewe@uni-tuebingen.de). Jede Aufgabe sollte in einer eigenen ``Zelle'' gel\"ost sein. Die Zellen \textbf{m\"ussen} unabh\"angig voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster: ``variablen\_datentypen\_\{nachname\}.m'' -benannt werden (z.B. variablen\_datentypen\_mueller.m). - -\section{Vektoren} +benannt werden (z.B. variablen\_datentypen\_meier.m). \begin{questions} - \question Erzeuge folgende Vektoren: + + \section*{Vektoren} + + \question Erzeuge Vektoren mit folgendem Inhalt: \begin{parts} \part Von 1 bis 10 in ganzzahligen Schritten. - \part Von 2 bis 20 in 2er Schritten. + \part Von 0 bis 20 in 2er Schritten. \part Mit \textbf{absteigendem} Inhalt von 100 bis 0. - \part In 100 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante \verb+pi+ + \part In 10 Schritten von 0 bis 1. + \part In 11 Schritten von 0 bis 1. + \part In 50 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante \verb+pi+ in Matlab definiert). \end{parts} @@ -60,15 +63,20 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m). \begin{parts} \part Erzeuge einen Vektor mit 100 Zufallszahlen (z.B. mit der Funktion \verb+rand+). +XXX Problem: rand(100) macht matrix. Also doch lieber 0:100:0.1 ? XXX + \part Gib jeweils den ersten, den letzten, den 5., 24. und den vorletzten Wert aus. \part Gib die ersten 10 Werte aus. \part Gib die letzten 10 Werte aus. - \part Gib 10 zufaellig ausgew\"ahlte Werte aus (benutze + \part Gib die Werte an den Stellen 3, 15, und 42 zusammen als Vektor aus. + \part Gib 10 zuf\"allig ausgew\"ahlte Werte aus (benutze \verb+randi+ um die Indizes zu erstellen). +XXX wieder das matrix Problem von randi XXX + \end{parts} - \question Erzeuge eine Variable und speichere etwas Text in ihr - sodass mindestens 2 Worte vorhanden sind. (\code{x = 'some - text'}). Benutze die Indizierung um die Woerter einzeln + \question Erzeuge eine Variable und speichere etwas Text in ihr, + so dass mindestens 2 Worte vorhanden sind. (z.B. \code{x = 'some + text'}). Benutze die Indizierung um die W\"orter einzeln auszugeben. \question Definiere zwei Vektoren: \verb+x = [3 2 6 8];+ und @@ -77,42 +85,42 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m). \part Was sind die Gr\"o{\ss}en von \verb+x+ und \verb+y+ (siehe \verb+size+)? \part ... addiere 5 zu jedem Element von \verb+x+. - \part ... addiere 3 zu jedem Element von y, dass einen ungeraden + \part ... addiere 3 zu jedem Element von y, das einen ungeraden Index hat. \part ... multipliziere jedes Element von \verb+x+ mit dem entsprechenden Element in \verb+y+ und weise das Ergebnis der Variable \verb+z+ zu. +XXX Vorher noch eine Aufgabe, bei der man nicht transponieren muss! XXX \end{parts} - \end{questions} -\newpage -\subsection{Matrizen} - \begin{questions} - \question Erstelle eine 5 x 5 Matrix die Zufallszahlen enth\"alt (nutze die - MATLAB Funktion \verb+randn()+, benutze die Hilfe. Was macht sie?). + \newpage + \section*{Matrizen} + + \question Erstelle folgende Matrix + \[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 & 4 \end{array} \right) \] \begin{parts} - \part Gib alle Elemente der ersten Zeile aus. - \part Gib alle Elemente der zweiten Spalte aus. - \part Greife mit einem einzigen Kommando auf die Elemente jeder - 2. Spalte zu und speichere die Daten in einer neuen Variable. + \part Gib das Element in der 3. Zeile und 2. Spalte aus. + \part Gib jeweils alle Elemente der 1., 2. und 3. Zeile aus. + \part Gib jeweils alle Elemente der 1., 2., und 3. Spalte aus. + \part Erh\"ohe das Element in der 2. Zeile und 3. Spalte um Eins. + \part Ziehe von allen Elementen der 1. Zeile 5 ab. + \part Multipliziere alle Elementen der 3. Spalte mit 2. \end{parts} - \question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze die - \verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe - nach, wie sie benutzt wird). + \question Erstelle eine $5 \times 5$ Matrix die Zufallszahlen enth\"alt (nutze die + MATLAB Funktion \verb+randn()+. Benutze die Hilfe: Was macht die Funktion?). \begin{parts} - \part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension). + \part Gib das Element in der 2. Zeile und 3. Spalte aus. + \part Gib jeweils alle Elemente der 1., 3. und letzten Zeile aus. + \part Gib jeweils alle Elemente der 2. und 4. Spalte aus. + \part Greife mit einem einzigen Kommando auf die Elemente jeder + zweiten Spalte zu und speichere die Daten in einer neuen Variable. \end{parts} - \question Erstelle eine 3-D Matrix der Gr\"o{\ss}e \verb+[5, 5, 3]+ - mithilfe der Funktion \code{ones()}. Multipliziere alle Elemente - des ersten Blattes mit 1, die des zweiten mit 2, des dritten mit - 3. - \question Erstelle folgende Variablen \verb+x = [1 5 9]+ and \verb+y = [7 1 5]+ und \verb+M = [3 1 6; 5 2 7]+. Welche der folgenden Operationen funktionieren? Wenn nicht, warum - funktioneieren sie nicht? Teste Deine Vorhersagen. + funktionieren sie nicht? Teste Deine Vorhersagen. \begin{parts} \part \code{x + y} \part \code{x * M} @@ -122,13 +130,27 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m). \part \code{M - [x; y]} \end{parts} - \question Erzeuge eine 5 x 5 x 5 Matrix die mit ganzzahligen - Zufallszahlen zwischen 0 und 100 gefuellt ist. + \question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze die + \verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe + nach, wie sie benutzt wird). + \begin{parts} + \part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension). + \end{parts} + + \question Erstelle eine 3-D Matrix der Gr\"o{\ss}e \verb+[5, 5, 3]+ + mithilfe der Funktion \code{ones()}. Multipliziere alle Elemente + des ersten Blattes mit 1, die des zweiten mit 2, des dritten mit + 3. + + \question Erzeuge eine $5 \times 5 \times 5$ Matrix die mit ganzzahligen, gleichverteilten + Zufallszahlen zwischen 0 und 100 gef\"ullt ist. \begin{parts} \part Berechne den Mittelwert aller Bl\"atter dieser Matrix (benutze \verb+mean()+, siehe Hilfe). \end{parts} + XXX Das geht auch in 2D: Mittelwerte der Zeilen, bzw. Spalten! Das waere sehr wichtig! Auch um den Anschluss an excel zu machen! XXXX \question Matrizen k\"onnen neben der ``normalen'' \textit{subscript} +XXX Das wuerde ich mit einer 2D Matrize machen! XXX Indizierung auch \textit{linear} indiziert werden (siehe Hilfe \"uber Indexing oder Funktionen \verb+sub2ind+ oder \verb+ind2sub+).