From ef6397b43235d76eeabed96746c7900c71aa7c6f Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan.grewe@g-node.org>
Date: Tue, 18 Oct 2016 21:53:44 +0200
Subject: [PATCH] exercise update

---
 programming/exercises/vectors_matrices.tex | 41 ++++++++++++++--------
 1 file changed, 27 insertions(+), 14 deletions(-)

diff --git a/programming/exercises/vectors_matrices.tex b/programming/exercises/vectors_matrices.tex
index b2d91a3..83eb0ba 100644
--- a/programming/exercises/vectors_matrices.tex
+++ b/programming/exercises/vectors_matrices.tex
@@ -42,13 +42,11 @@ werden. Die L\"osung soll in Form eines einzelnen Skriptes (m-files)
 im ILIAS hochgeladen werden. 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).
+\linebreak ``vektoren\_matrizen\_\{nachname\}.m'' benannt werden
+(z.B. vektoren\_matrizen\_mueller.m).
 
 \begin{questions}
-
   \section*{Vektoren}
-
     \question Erzeuge Vektoren mit folgendem Inhalt: 
     \begin{parts}
       \part Von 1 bis 10 in ganzzahligen Schritten.
@@ -118,7 +116,7 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
       \part Erkl\"are die Fehlermeldung.
       \begin{solution}
         * ist der Operator f\"ur die Matrixmultiplikation. Bei dieser
-        muessen die inneren Dimensionen \"uebereinstimmen.
+        muessen die inneren Dimensionen \"uebereinstimmen.\linebreak
         \code{disp(size(x))\\1   4 \\disp(size(y)) \\ 1   4}\\
         (m,n)*(n,o) w\"are ok.
       \end{solution}
@@ -180,7 +178,7 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
       \end{solution}
       \part Gib die letzten 10 Werte aus.
       \begin{solution}
-        \code{disp(x(end-10:end))}
+        \code{disp(x(end-9:end))}
       \end{solution}
       \part Versuche den Wert an der Stelle 0 auszugeben.
       \begin{solution}
@@ -218,13 +216,21 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
   \[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 &
       4 \end{array} \right) \]
   \begin{parts}
+    \part Benutze die Funktion \code{size} um die Gr\"o{\ss}e vpm \code{A} anzeeigen zu lassen.
+    \begin{solution}
+      \code{x = [7 3 5; 1 8 3; 8 6 4];\\disp(size(x))}
+    \end{solution}
+    \part Finde heraus, wie man \code{size} aufruft um nur die L\"ange entlang einer einzelnen Dimension auszugeben. Gib einzeln die L\"angen beider Dimensionen aus.
+    \begin{solution}
+      \code{disp(size(x, 1))}\\\code{disp(size(x, 2))}
+    \end{solution}
     \part Gib das Element in der 3. Zeile und 2. Spalte aus.
     \begin{solution}
-      \code{x = [7 3 5; 1 8 3; 8 6 4];\\x(3,2)}
+      \code{x(3,2)}
     \end{solution}
     \part Gib jeweils alle Elemente der 1., 2. und 3. Zeile aus.
     \begin{solution}
-      \code{x([1 2 3],:);}
+      \code{disp(x([1 2 3],:));}
     \end{solution}
     \part Gib jeweils alle Elemente der 1., 2., und 3. Spalte aus.
      \begin{solution}
@@ -250,6 +256,7 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
   \begin{parts}
     \part Gib das Element in der 2. Zeile und 3. Spalte aus.
     \begin{solution}
+      \code{M = randn(5, 5);}
       \code{disp(M(2,3))}
     \end{solution}
  
@@ -292,7 +299,7 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
     \end{solution}
 
     \part F\"uhre folgendes Kommando aus: \code{M(1:2,1) = [1, 2,
-      3]}. Was k\''onnte die Absicht dieses Codes gewesen sein? Was
+      3]}. Was k\"onnte die Absicht dieses Codes gewesen sein? Was
     bedeutet die Fehlermeldung?
     \begin{solution}
       \code{M(1:2,1) = [1, 2,3];\\ Subscripted assignment dimension
@@ -315,7 +322,7 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
 
     \part Wie viele Werte enth\"alt sie?
     \begin{solution}
-      100
+      \code{disp(numel(x))}
     \end{solution}
 
     \part Benutze das lineare Indizieren um 50 zuf\"allige Werte
@@ -326,6 +333,14 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
 
     \part Wo liegt der Vorteil gegen\"uber der \textit{subscript}
     Indizierung?
+    \begin{solution}
+      Die Matrize ist 2-dimensional. Wenn mit dem subscript index
+      zugegriffen werden soll, dann muss auf die Dimensionen
+      einzeln geachtet werden. Mit dem linearen Indexieren kann einfach
+      einen Vektor mit n Indices benutzt werden. Wenn es auch noch eine
+      eindeutige (ohne doppelte) Auswahl sein soll, dann muss bei
+      2-D viel komplexer kontrollieren.
+    \end{solution}
     \part Berechne die Summe aller Werte mit einem Funktionsaufruf..
     \begin{solution}
       \code{sum(x(:))} oder \code{sum(sum(x))}
@@ -387,11 +402,9 @@ voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
     \part Berechne den Mittelwert aller Bl\"atter dieser Matrix
     (benutze \verb+mean()+, siehe Hilfe).
     \begin{solution}
-      \code{x = rand(5,5,5) .* 100;\\ disp(mean(mean(x(:,:,1))))\\ disp(mean(mean(x(:,:,2)))) \\ disp(mean(mean(x(:,:,3))))}
+      \code{x = round(rand(5,5,5) .* 100);\\ Disp(mean(mean(x(:,:,1))))\\ disp(mean(mean(x(:,:,2)))) \\ disp(mean(mean(x(:,:,3))))}
     \end{solution}
-
   \end{parts}
-
   \end{questions}
 
-\end{document}
\ No newline at end of file
+\end{document}