diff --git a/programming/exercises/day_1_exercises.pdf b/programming/exercises/day_1_exercises.pdf new file mode 100644 index 0000000..e80f7f7 Binary files /dev/null and b/programming/exercises/day_1_exercises.pdf differ diff --git a/programming/exercises/day_1_exercises.tex b/programming/exercises/day_1_exercises.tex new file mode 100644 index 0000000..7e6a431 --- /dev/null +++ b/programming/exercises/day_1_exercises.tex @@ -0,0 +1,196 @@ +\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 \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} + + +\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} + diff --git a/programming/exercises/pyramidal_baseline.mat b/programming/exercises/pyramidal_baseline.mat new file mode 100644 index 0000000..b70238b Binary files /dev/null and b/programming/exercises/pyramidal_baseline.mat differ