From a2d8eb2186b6e9fc910043c27b7870dea3a45c61 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Wed, 8 Oct 2014 08:59:41 +0200 Subject: [PATCH] Vektoren geschafft.... --- programming/lectures/programming_basics.tex | 155 +++++++++++++++++--- 1 file changed, 133 insertions(+), 22 deletions(-) diff --git a/programming/lectures/programming_basics.tex b/programming/lectures/programming_basics.tex index c27636c..43d81ff 100644 --- a/programming/lectures/programming_basics.tex +++ b/programming/lectures/programming_basics.tex @@ -293,20 +293,19 @@ \begin{frame}[fragile] \frametitle{Vektoren und Matrizen} \framesubtitle{Erzeugen von Vektoren} - \tiny + \footnotesize \begin{lstlisting}[label=arrayListing1] - >> a = [0 1 2 3 4 5 6 7 8 9] % a brute-force way to define a vector - a = - 0 1 2 3 4 5 6 7 8 9 - >> - >> b = (0:9) % a more convenient way - b = - 0 1 2 3 4 5 6 7 8 9 - >> - >> c = (0:2:10) % define a vector and fill it with number between 0 - % and 10 in steps of 2 - c = - 0 2 4 6 8 10 +>> a = [0 1 2 3 4 5 6 7 8 9] % Erstellen eines Zeilenvektors + a = + 0 1 2 3 4 5 6 7 8 9 +>> +>> b = (0:9) % etwas bequemer + b = + 0 1 2 3 4 5 6 7 8 9 +>> +>> c = (0:2:10) + c = + 0 2 4 6 8 10 \end{lstlisting} \end{frame} @@ -315,25 +314,137 @@ \framesubtitle{Spalten \& Zeilenvektoren} \tiny \begin{lstlisting}[label=arrayListing2] - >> a = [1 2 3 4 5 6 7 8 9 10] % create a row vector - a = +>> a = [1 2 3 4 5 6 7 8 9 10] % Erstellen eines Zeilenvektors + a = 1 2 3 4 5 6 7 8 9 10 - >> - >> b = [1; 2; 3; 4; 5] % a column vector - b = +>> +>> b = [1; 2; 3; 4; 5] % Erstellen eines Spaltenvectors + b = 1 2 3 4 5 - >> - >> b = b' % transpose it to a row vector - b = +>> +>> b = b' % Transponieren + b = 1 2 3 4 5 - >> +>> \end{lstlisting} \end{frame} +\begin{frame} + \frametitle{Vektoren} + \framesubtitle{Zugriff auf Inhalte von Vektoren} + \begin{figure} + \centering + \includegraphics[width=0.8\columnwidth]{./images/arrayIndexing.pdf} + \end{figure} + \pause + Der Zugriff auf die Inhalte eines Vektors erfolgt \"uber den Index.\\ + \textbf{Achtung!} Der erste Index ist die 1. +\end{frame} + +\begin{frame}[fragile] + \frametitle{Vektoren} + \framesubtitle{Zugriff auf Inhalte von Vektoren} + \vspace{-0.5cm} +\footnotesize +\begin{lstlisting} +>> a = (11:20); +>> a(1) % das 1. Element + ans = + 11 +>> +>> a(5) % das 5. Element + ans = + 15 +>> +>> a(end) % das letzte Element + ans = + 20 +>> +\end{lstlisting} +\end{frame} +\begin{frame}[fragile] + \frametitle{Vektoren} + \framesubtitle{Zugriff auf Inhalte von Vektoren} + \vspace{-0.5cm} +\footnotesize +\begin{lstlisting} +>> a([1 3 5]) % das 1., 3. und 5. Element + ans = + 11 13 15 +>> +>> a(2:4) % alle element von Index 2 bis 4 + ans = + 12 13 14 +>> +>> a(1:2:end) %retrieve every second element +>> and = +>> 11 13 15 17 19 +>> +\end{lstlisting} +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Vektoren} + \framesubtitle{Grundlegende Operationen} + \vspace{-0.25cm} + \footnotesize + \begin{lstlisting}[label=arrayListing4] +>> a = (0:2:8); +>> a + 5 % addiere einen Skalar + ans = + 5 7 9 11 13 +>> +>> a * 2 % Multiplication + ans = + 0 4 8 12 16 +>> +>> a / 2 % Division + ans = + 0 1 2 3 4 +>> +>> a(1:3) + a(2:4) % Addieren von 2 Vektoren + ans = + 2 6 10 +>> +>> a(1:2) + a(2:4) % Addierte Vektoren muessen die gleiche Groesse haben! + ??? Error using ==> plus + Matrix dimensions must agree. + \end{lstlisting} +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Vektoren} + \framesubtitle{\"Ubungen} + \begin{enumerate} + \item Erzeuge Vektoren: + \begin{enumerate} + \item Von 1 bis 10 in ganzzahligen Schritten. + \item $2:20$ in 2er Schritten. + \item mit absteigendem Inhalt von 100 bis 0. + \item In 100 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante 'pi' + in Matlab definiert). + \end{enumerate} + \item Erzeuge eine Variable und speichere etwas Text in ihr sodass + mindestens 2 Worte vorhanden + sind. \\ (\verb+x = 'some text'+). Benutze die Indizierung um die + Woerter einzeln auszugeben. + \item Definiere zwei Vektoren: \verb+x = [3 2 6 8];+ and \verb+y = [4; 1; 3; 5];+ + \begin{enumerate} + \item ... addiere 5 zu jedem Element von \verb+x+. + \item ... addiere 3 zu jedem Element zu jedem Element von y, dass einen nicht gerade Index hat. + \item ... multipliziere jedes Element von \verb+x+ mit dem + entsprechenden Element in \verb+y+ und weise das Ergebnis der + Variable \verb+z+ zu. + \end{enumerate} + \end{enumerate} +\end{frame} + \end{document}