\documentclass[12pt,a4paper,pdftex]{article}

\usepackage{natbib}
\usepackage{graphicx}
\usepackage[margin=1.5in]{geometry}
\usepackage[small]{caption}
\usepackage{sidecap}
\usepackage{pslatex}
\usepackage{amsmath}
\usepackage{amssymb}
\setlength{\marginparwidth}{2cm}
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}

%%%%%title
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{\bf Einf\"uhrung in die wissenschaftliche Datenanlyse\\ \"Ubungen} 
\author{Fabian Sinz, Jan Grewe, Jan Benda}
\date{\noindent\parbox{\textwidth}{\normalsize\itshape Eberhardt Karls Universit\"at
T\"ubingen, Abt. Neuroethologie }}

%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% letter : 8.5 x 11 in
\setlength{\headheight}{5mm}    % default ~5mm
\setlength{\headsep}{8mm}       % default ~10mm
\setlength{\topmargin}{15mm}    % default ~8mm
\setlength{\textheight}{23cm}

\setlength{\oddsidemargin}{2.5cm}
\setlength{\evensidemargin}{2.5cm}
\setlength{\textwidth}{16cm}

\setlength{\voffset}{-1in}
\setlength{\hoffset}{-1in}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\baselinestretch}{1.15}
\makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpsep}{5ex}
\makeatother

\begin{document}
\maketitle

\section{Variablen}

\begin{enumerate}
\item Erzeuge zwei Variablen \verb+a, b+ und weise ihnen
  unterschiedliche Werte zu. Schlie{\ss}e die Zeilen mit einem
  Semikolon ab.
\item Lasse die Werte der Variablen ausgeben.
\item F\"uhre einfache mathematische Operationen aus (Addition,
  Subtraktion, etc.)  Potenzierung erfolgt \"uber das Dach Symbol
  \verb+^+). Stelle fest, ob sich der der urspruengliche Wert der
  Variable ge\"andert hat.
\item Benuzte die Kommandozeile um herauszufinden, welche Variablen
  es im Workspace gibt.
\item Finde in der Hilfe mehr Information \"uber das \verb+clear+ Kommando.
\item L\"osche eine Variable.
\item L\"osche alle \"ubrigen Variablen.
\item Berechne die Fakult\"at von 5 indem eine Variable \verb+x+
  erzeugt wird und ihr der Wert 1 zugewiesen wird. In einzelenen
  Schritten wird x jeweils das Ergebnis des vorherigen Schrittes
  zugewiesen.
\end{enumerate}

\newpage
\section{Vektoren und Matrizen}
\subsection{Vektoren}
  \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}

\newpage
\subsection{Matrizen}
  \begin{enumerate}
  \item Erstelle eine 5 x 5 Matrix die Zufallszahlen enth\"alt (nutze die 
    MATLAB Funktion \verb+randn()+, benutze die Hilfe. Was macht sie?). 
    \begin{enumerate}
    \item Gib alle Elemente der ersten Zeile aus.
    \item Gib alle Elemente der zweiten Spalte aus.
    \item Greife mit einem einzigen Kommando auf die Elemnte jeder
      2. Spalte zu und speichere die Daten in einer neuen Variable.
    \end{enumerate}
  \item 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{enumerate}
    \item Gib alle Elemente des ersten ``Blattes'' aus (Index 1 in der 3. Dimension).
    \end{enumerate}
  \item Erstelle eine 3-D Matrix mithilfe der Funktion
    \verb+ones()+. Multipliziere das erste Blatt mit 1, das zweite mit
    2, dritte mit 3 etc.
  \item 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.
    \begin{enumerate}
    \item \begin{verbatim} x + y \end{verbatim}
    \item \begin{verbatim} x * M \end{verbatim}
    \item \begin{verbatim} x + y' \end{verbatim}
    \item \begin{verbatim} M - [x y] \end{verbatim}
    \item \begin{verbatim} [x; y] \end{verbatim}
    \item \begin{verbatim} M - [x; y] \end{verbatim}
    \end{enumerate}
  \item Erzeuge eine 5 x 5 x 5 Matrix die mit ganzzahligen
    Zufallszahlen zwischen 0 und 100 gefuellt ist.
    \begin{enumerate}
    \item  Berechne den Mittelwert aller Bl\"atter dieser Matrix (benutze \verb+mean()+, siehe Hilfe).
    \end{enumerate}
  \end{enumerate}

\newpage
\section{Boolesche Operationen}

\begin{enumerate}
\item Gegeben sind zwei Vektoren \verb+x = [1 5 2 8 9 0 1]+ und
  \verb+y = [5 2 2 6 0 0 2]+. F\"uhre aus und erkl\"are.
  \begin{enumerate}
  \item \verb+x > y+
  \item \verb+y < x+
  \item \verb+x == y+
  \item \verb+x ~= y+
  \item \verb+x & ~y+
  \item \verb+x | y+
  \end{enumerate}
\end{enumerate}

\newpage
\section{Logische Indizierung}
\begin{enumerate}
  \item Gegeben sind \verb+x = (1:10)+ und
    \verb+y = [3 1 5 6 8 2 9 4 7 0]+. Try to understand the following
    commands.
    \begin{enumerate}
    \item \verb+x( (y <= 2) )+
    \item \verb+x( (x > 2) | (y < 8) )+
    \item \verb+x( (x == 0) & (y == 0) )+
    \end{enumerate}
  \item Erzeuge eine 100x100 2-D Matrix mit Zufallswerten zwischen 0 und 100 (\verb+randi+). Ersetze \verb+x < 33+ mit 0, \verb+x >= 33 und x < 66+ mit 1 und alle \verb+x >= 66+ auf 2.
  \item Ermittle die Anzahl Elemente fuer jede Klasse mithilfe eines Booleschen Ausdrucks.
\end{enumerate}


\newpage
\section{Kontrollstrukturen}

\begin{enumerate}
  \item Erzeuge einen Vektor 'x' mit z.B. 50 Zufallszahlen im Bereich 0 - 10.
    \begin{enumerate}
    \item Benutze eine Schleife um das arithmetische Mittel zu berechnen. Der Mittelwert ist definiert als:
      $\overline{x}=\frac{1}{n}\sum\limits_{i=0}^{n}x_i $.
    \item Benutze eine Schleife um die Standardabweichung zu bestimmen:
      $\sigma=\sqrt{\frac{1}{n}\sum\limits_{i=0}^{n}(x_i-\overline{x})^2}$).
    \item Suche in der MATLAB Hilfe nach Funktionen, die das fuer dich tuen :-).
    \end{enumerate}
  \item Erzeuge eine 5 x 5 x 5 Matrix mit Zufallszahlen.
    \begin{enumerate}
    \item Benutze eine for Schleife um nacheinander die Elemente jedes ``Blattes'' einzeln auszugeben.
    \item Das gleich mit einer while-Schleife.
    \end{enumerate}
  \item Erstelle 'x' einen Vektor mit 10 Zufallszahlen im Bereich 0:10.
    \begin{enumerate}
    \item Benutze eine for-Schleife um all die Elemente zu loeschen,
      die (\verb+x(index) = [];+) kleiner als 5 sind.
    \item Loesche alle Elemente die kleiner als  5 und groesser als  2 sind.
    \item Kann man das gleiche auch ohne eine Schleife erledigen?
    \end{enumerate}
  \item Teste den Zufallsgenerator! Dazu zaehle die Anzahl der
    Elemente, die durch folgende Grenzen getrennt werden [0.2 0.4 0.6
      0.8 1.0]. Speichere die Ergebnisse in einem passenden
    Vektor. Nutze eine Schleife um 1000 Zufallszahlen mit
    \verb+rand()+ (siehe Hilfe) zu ziehen. Was waere die Erwartung,
    was kommt heraus?
\end{enumerate}


\end{document}