139 lines
5.4 KiB
TeX
139 lines
5.4 KiB
TeX
\documentclass[12pt,a4paper,pdftex]{exam}
|
|
|
|
\usepackage[german]{babel}
|
|
\usepackage{natbib}
|
|
\usepackage{graphicx}
|
|
\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}
|
|
|
|
%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
|
\pagestyle{headandfoot}
|
|
\header{{\bfseries\large \"Ubung 4}}{{\bfseries\large Kontrollstrukturen}}{{\bfseries\large 08. November, 2016}}
|
|
\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email:
|
|
jan.grewe@uni-tuebingen.de}
|
|
\runningfooter{}{\thepage}{}
|
|
|
|
\setlength{\baselineskip}{15pt}
|
|
\setlength{\parindent}{0.0cm}
|
|
\setlength{\parskip}{0.3cm}
|
|
\renewcommand{\baselinestretch}{1.15}
|
|
|
|
\newcommand{\code}[1]{\texttt{#1}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{document}
|
|
|
|
\vspace*{-6.5ex}
|
|
\begin{center}
|
|
\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
|
|
{\large Jan Grewe, Jan Benda}\\[-3ex]
|
|
Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
|
|
\end{center}
|
|
|
|
Die folgenden Aufgaben dienen der Wiederholung, \"Ubung und
|
|
Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost
|
|
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:
|
|
``control\_flow\_\{nachname\}.m'' benannt werden
|
|
(z.B. control\_flow\_mueller.m).
|
|
|
|
\begin{questions}
|
|
\question Implementiere \code{for} Schleifen bei denen die Laufvariable:
|
|
\begin{parts}
|
|
\part ... von 0 bis 10 l\"auft. Gib den Wert der Laufvariable im
|
|
Schleifenk\"orper aus.
|
|
\part ... von 10 bis 0 l\"auft. Gib den Wert der Laufvariable aus.
|
|
\part ... von 0 bis 1 in einer Schrittweite von 0.1 l\"auft. Gib
|
|
die Laufvariable aus.
|
|
\end{parts}
|
|
|
|
\question Zugriff auf Elemente in Vektoren:
|
|
\begin{parts}
|
|
\part Definiere einen Vektor \code{x} mit Werten von 1:100.
|
|
\part Benutze eine \code{for} Schleife um jedes Element von
|
|
\code{x} auszugeben indem die Laufvariable zum indizieren benutzt wird.
|
|
\part ... gleiches nur ohne eine Laufvariable zu nutzen.
|
|
\end{parts}
|
|
|
|
\question Erzeuge einen Vektor \verb+x+ mit 50 Zufallszahlen im
|
|
Bereich 0 - 10.
|
|
\begin{parts}
|
|
\part 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 $.
|
|
\part Benutze eine Schleife um die Standardabweichung zu
|
|
bestimmen:
|
|
$\sigma=\sqrt{\frac{1}{n}\sum\limits_{i=0}^{n}(x_i-\overline{x})^2}$).
|
|
\part Suche in der MATLAB Hilfe nach Funktionen, die das f\"ur
|
|
dich tun :-).
|
|
\end{parts}
|
|
|
|
\question Implementiere eine \code{while} Schleife
|
|
\begin{parts}
|
|
\part ... die 100 mal durchlaufen wird. Gib den aktuellen
|
|
Durchlauf im Schleifenk\"orper aus.
|
|
\part ... die endlos l\"auft. Sie kann mir \code{Strg + C}
|
|
abgebrochen werden.
|
|
\end{parts}
|
|
|
|
\question Nutze eine endlose \code{while} Schleife um einzeln die
|
|
Elemente eines Vektor der L\"ange 10 auszugeben.
|
|
|
|
\question Benutze eine endlose \verb+while+ Schleife um so lange
|
|
Zufallszahlen (\verb+randn+) zu ziehen, bis eine Zahl gr\"o{\ss}er
|
|
1.33 gezogen wurde.
|
|
\begin{parts}
|
|
\part Z\"ahle die Anzahl n\"otiger Versuche.
|
|
\part Nuzte eine \code{for} Schleife um den vorherigen Test
|
|
1000 mal laufen zu lassen. Merke Dir alle Anzahlen und berechne den
|
|
Mittelwert davon.
|
|
\part Plotte die Anzahl notwendiger Versuche.
|
|
\part Spiele mit der Schwelle, was passiert?
|
|
\end{parts}
|
|
|
|
\question Erstelle \verb+x+ einen Vektor mit 10 Zufallszahlen im
|
|
Bereich 0:10.
|
|
\begin{parts}
|
|
\part Benutze eine \code{for} Schleife um all die Elemente zu
|
|
loeschen (\code{x(index) = [];}), die kleiner als 5 sind.
|
|
\part Loesche alle Elemente die kleiner als 5 und groesser als 2
|
|
sind.
|
|
\part Kann man das gleiche auch ohne eine Schleife erledigen?
|
|
\end{parts}
|
|
|
|
\question Teste den Zufallsgenerator! Dazu z\"ahle die Anzahl der
|
|
Elemente, die durch folgende Grenzen getrennt werden [0.0, 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?
|
|
|
|
\question String parsing: Mitunter werden Dateinamen von
|
|
Datens\"atzen benutzt um anzuzeigen, unter welchen Bedingungen die
|
|
Daten gewonnen wurden. Man muss also den Dateinamen parsen und die
|
|
f\"ur einen relevante Information herausfiltern.
|
|
\begin{parts}
|
|
\part Erstelle eine Variable
|
|
\verb+filename = '2015-10-12_100Hz_1.25V.dat'+. Der Unterstrich
|
|
ist offensichtlich das verwendete Trennzeichen.
|
|
\part Benutze eine \verb+for+ Schleife um durch alle Zeichen zu
|
|
laufen. Vergleiche jedes Zeichen mit dem Unterstrich und merke
|
|
Dir die Positionen in einem Vektor.
|
|
\part Benutze eine zweite Schleife um durch diesen
|
|
Positionsvektor zu laufen und benutze die darin enthaltene
|
|
Information um den \code{filename} in Teile zu schneiden.
|
|
\part Gib die einzelnen Teile auf dem Bildschirm aus.
|
|
\end{parts}
|
|
|
|
\end{questions}
|
|
|
|
\end{document}
|