Merge branch 'master' of raven:scientificComputing

This commit is contained in:
Jan Benda 2015-10-15 18:20:20 +02:00
commit 78d83e54c2
6 changed files with 291 additions and 17 deletions

View File

@ -0,0 +1,19 @@
STAT JJJJMM QN TNN TNM TMM TXM TXX SOS NMM RSS RSX FMM FXX
10015 201509 1 12.3 13.7 15.3 16.9 18.7 151.3 -9.9 74.0 10.6 4.6 27.1
10015 201508 3 13.8 16.3 18.1 20.1 23.6 199.0 -9.9 108.5 26.6 -9.9 20.9
10015 201507 3 12.1 14.6 16.6 18.8 25.9 237.9 5.1 83.2 13.1 4.4 25.3
10015 201506 3 9.9 11.6 13.5 15.7 20.0 221.3 -9.9 -9.9 5.6 3.9 22.8
10015 201505 3 6.6 8.6 10.3 12.3 16.6 216.7 5.4 49.5 10.1 4.3 23.7
10015 201504 3 1.4 5.7 7.5 9.4 11.7 233.6 4.9 15.1 4.1 4.0 24.6
10015 201503 3 1.5 4.0 5.6 7.1 9.5 141.4 5.8 73.5 16.3 4.5 30.9
10015 201502 3 -0.2 2.6 3.9 5.2 7.2 88.4 5.6 45.5 8.6 4.6 25.2
10015 201501 3 -1.5 3.0 4.9 6.3 9.8 51.7 5.8 103.1 15.8 5.3 30.6
10015 201412 3 -1.4 4.0 5.9 7.4 10.5 34.5 6.4 150.5 32.5 5.5 30.2
10015 201411 3 0.5 8.5 9.6 10.7 15.8 51.1 6.4 22.9 6.4 5.0 24.3
10015 201410 3 9.4 13.1 14.5 15.8 18.8 92.3 5.9 82.5 22.6 4.5 27.2
10015 201409 3 9.8 15.2 16.9 18.7 22.2 164.4 4.6 31.4 7.9 4.3 21.7
10015 201408 3 10.9 15.1 17.4 19.5 25.2 212.2 5.2 190.3 47.3 4.4 25.2
10015 201407 3 12.7 17.5 19.5 22.2 25.9 285.0 4.5 54.6 23.6 3.7 17.5
10015 201406 3 11.3 13.3 15.2 17.6 22.2 247.6 4.9 31.0 8.0 3.8 17.7
10015 201405 3 7.2 10.1 12.0 14.3 20.7 211.8 5.5 58.0 12.4 3.9 20.4
10015 201404 3 4.5 7.7 9.5 12.0 16.7 185.4 5.2 32.8 10.1 4.3 23.4

Binary file not shown.

View File

@ -0,0 +1,77 @@
\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 6}}{{\bfseries\large Strukturen und Cell Arrays}}{{\bfseries\large 16. Oktober, 2015}}
\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. Im Gegensatz zu den vorherigen \"Ubungsbl\"attern k\"onnen die
L\"osungen nicht mehr in einer Datei gemacht werden. Die L\"osungen
also als zip-Archiv auf ILIAS hochladen. Das Archiv sollte nach dem Muster:
``skripte\_funktionen\_\{nachname\}.zip'' benannt werden.
\begin{questions}
\question Erzeugen von Strukturen:
\begin{parts}
\part Erzeuge eine Struktur mit vier Feldern. Weise beliebige,
verschiedene, Werte zu.
\part Gib die Namen der Felder der Struktur aus.
\part Greife auf eines der Felder zu und gib den Inhalt auf dem Bildschirm aus.
\part Weise einen Wert einem noch nicht existierenden Feld zu.
\part L\"osche ein Feld.
\end{parts}
\question Schreibe eine Funktion, die den Pfad zu einem Verzeichnis
\"ubernimmt und eine Struktur mit Informationen \"uber das
Verzeichnis zur\"uckgibt. Dies soll der Name und die Anzahl Dateien
in dem Verzeichnis sein.
\question Erzeugen von Cell Arrays:
\begin{parts}
\part Erzeuge ein leeres Cell Array.
\part Weise der ersten Zelle einen Vektor, der zweiten Zelle eine
Matrize und der dritten einen Text zu.
\part Greife auf die Zellen zu.
\end{parts}
\question
\question
\end{questions}
\end{document}

View File

@ -16,11 +16,11 @@
\usepackage{scalefnt}
\usepackage{tikz}
\usepackage{ textcomp }
\usepackage{soul}
\usepackage{color, soul}
\usepackage{hyperref}
\definecolor{lightblue}{rgb}{.7,.7,1.}
\definecolor{mygreen}{rgb}{0,1.,0}
\definecolor{mygreen}{rgb}{0.4,1.,0.4}
\definecolor{stringcolor}{rgb}{0.1,0.6,0.1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mode<presentation>
{
@ -68,7 +68,7 @@
language=Matlab,
commentstyle=\itshape\color{darkgray},
keywordstyle=\color{blue},
stringstyle=\color{green},
stringstyle=\color{stringcolor},
backgroundcolor=\color{blue!10},
breaklines=true,
breakautoindent=true,
@ -101,32 +101,142 @@
\huge{1. Fortgeschrittene Datenstrukturen}
\end{frame}
\begin{frame}
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\large
Bisher kennen wir folgende Datenstrukturen:
\begin{enumerate}
\item Skalare.
\item Vektoren.
\item Matrizen.
\end{enumerate}\pause
F\"ur die meisten F\"alle reicht das aus. Manchmal m\"ochte man aber
Dinge gemeinsam ablegen, die nicht den gleichen Datentyp haben.
\pause\\
Beispiel: Ich habe eine Reihe Versuchspersonen bei denen ich
verschiede Parameter (Alter, Geschlecht) zusammen mit den
Testergebnissen ablegen m\"ochte.
\end{frame}
\begin{frame}
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\only<1> {
F\"ur diese Zwecke kennt MATLAB vier weitere Datenstrukturen:
\begin{enumerate}
\item Strukturen.
\item Cell Arrays.
\item Tabellen (neu seit 2013).
\item Objekte.
\end{enumerate}
}
\only <2> {
F\"ur diese Zwecke kennt MATLAB \st{vier} \textbf{drei} weitere Datenstrukturen:
\begin{enumerate}
\item Strukturen.
\item Cell Arrays.
\item Tabellen (neu seit 2013).
\item \st{Objekte.}
\end{enumerate}
}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\huge{Strukturen}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Strukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\begin{itemize}
\item Strukturen werden benutzt um beliebige zusammengeh\"orige
Daten in sog. Kontainern zu speichern.
\item Diese Daten k\"onnen über den Namen des Kontainers oder
\item Diese Daten k\"onnen \"uber den Namen des Kontainers oder
``Feldes'' angesprochen werden.
\item Man kann Listen von diesen Strukturen haben.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Strukturen}
Beispiel:
\footnotesize
\begin{lstlisting}
subjects(1).name = 'John Dow';
subjects(1).age = 35;
subjects(1).sex = 'm';
subjects(1).results = [1 2 3 4 5];
subjects(2).name = 'Jane Smith';
subjects(2).age = 32;
subjects(2).sex = 'f';
subjects(2).results = [1 2 3 4 5];
fieldnames(subjects)
ans =
'name'
'age'
'sex'
'results'
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Navigieren im Dateisystem}
\framesubtitle{Strukturen}
Beispiel:
\footnotesize
\begin{lstlisting}
subjects(1).name
ans =
'John Doe'
subjects(1).test2 = [];
fieldname(subjects(2))
ans =
'name'
'age'
'sex'
'results'
'test2'
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Strukturen}
\textbf{Vorteile:}
\begin{enumerate}
\item Strukturen koennen beliebige Werte aufnehmen.
\item Man kann Listen von Strukturen erstellen und darauf
indizieren.
\item Sind sehr leicht lesbar.
\item Addressieren von Feldern ist sehr intuitiv.
\end{enumerate}
\pause
\vspace{1cm}
\textbf{Nachteile:}
\begin{enumerate}
\item Alle Eintr\"age in einer Strukturliste m\"ussen gleichgefromt
sein.
\item Kein logisches Indizieren.
\item Elemente der Strukturen m\"ussen \"uber den Feldnamen
angesprochen werden.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\huge{Cell Arrays}
\end{frame}
@ -134,9 +244,9 @@
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Cell Arrays}
\begin{enumerate}
\item Matrizen k\"onnen nur rechtwinklig sein.\pause
\item Matrizen k\"onnen nur rechtwinklig sein.
\item Manchmal hat man aber unterschiedlich viele Datenpunkte, die
dennoch logisch zusammengeh\"oren.\pause
dennoch logisch zusammengeh\"oren.
\item Z.B. Wenn man Zeitpunkte von Neuronalen- oder Verhaltensereignissen hat.
\end{enumerate}
\end{frame}
@ -164,4 +274,51 @@
\end{lstlisting}
\end{frame}
\begin{frame}
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Cell Arrays}
\textbf{Vorteile:}
\begin{enumerate}
\item Kann alle m\"oglichen Daten ablegen.
\item Benutzung m\"oglich ohne Kenntnis von Feldnamen.
\end{enumerate}\pause
\vspace{1cm}
\textbf{Nachteile:}
\begin{enumerate}
\item Manchmal un\"ubersichtlich.
\item Adressieren mit ${}$ ist eher ungew\"ohnlich.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{``Strukturen'' und ``Cell Arrays''}
\huge{Tabellen}
\end{frame}
\begin{frame}
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Tabellen}
\begin{enumerate}
\item Datenstruktur \"ahnlich zu Excel Tabellen.
\item Jede Spalte ist eine Kategorie.
\item Verschiedene Spalten k\"onnen unterschiedliche Datentypen
haben.
\item Unterst\"utzung von Filteroperationen auf Spalten und Zeilen.
\item Kann direkt \textit{*.xlsx} Dateien importieren.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Tabellen}
\scriptsize
\begin{lstlisting}
\end{lstlisting}
\end{frame}
\end{document}

Binary file not shown.

View File

@ -317,7 +317,8 @@ Probleme mit dieser Funktion:
\item Die Funktion ist f\"ur genau einen Zweck gut.
\item Was sie tut, ist festgelegt und kann von au{\ss}en nicht
beeinflusst werden.
\item Sie tut 2 Dinge: Sinus berechnen \textbf{und} graphisch darstellen.
\item Sie tut 3 Dinge: Sinus berechnen \textbf{und} Amplituden
\"andern \textbf{und} graphisch darstellen.
\item Es ist nicht (einfach) m\"oglich an die berechneten Daten zu
kommen.
\item Keinerlei Dokumentation. Ich muss den code lesen um zu
@ -334,7 +335,9 @@ Probleme mit dieser Funktion:
\frametitle{Skripte und Funktionen}
\framesubtitle{Funktionen}
\begin{enumerate}
\item Identifizieren des Problems.
\item Manchmal ist es besser noch mal neu anzufangen als
Kleiningkeiten zu verbessern:
\item Welches Problem soll gel\"ost werden?
\item Aufteilen in Teilprobleme.
\item Gute Namen finden.
\item Definieren der Schnittstellen --- Was muss die Funktion
@ -350,7 +353,8 @@ Probleme mit dieser Funktion:
\begin{enumerate}
\item Berechnen der \textbf{einzelnen} Sinus.
\item Plotten der Daten.
\item Koordinieren von Berechung und Darstellung.
\item Koordinieren von Berechung und Darstellung mit
unterschiedlichen Amplituden.
\end{enumerate}
\end{frame}
@ -501,18 +505,34 @@ legend('show')
\end{frame}
\begin{frame}
\frametitle{Skripte undFunktionen}
\frametitle{Skripte und Funktionen}
\framesubtitle{Funktionen --- Zusammenfassung}
Funktionen sind kleine Code Fragmente, die
\begin{enumerate}
\item ... genau eine Aufgabe erledigen.
\item ... Argumente entgegennehmen k\"onnen.
\item ... R\"uckgabewerte haben k\"onnen.
\item ... ihren eigenen G\"ueltigkeitsbereich haben.
\item ... ihren eigenen G\"ultigkeitsbereich haben.
\item ... Skripten fast immer vorzuziehen sind.
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Skripte und Funktionen}
\framesubtitle{Organisation von Programmen}
\begin{itemize}
\item Mit den Funktionen haben wir ein Werkzeug, dass uns erlaubt
ein Programm in kleine, ``verdauliche'', Teile zu gliedern.
\end{itemize}
Ein m\"ogliches Programmlayout k\"onnte so aussehen:
\begin{figure}
\includegraphics[width=0.5\columnwidth]{./images/simple_program.pdf}
\end{figure}
\end{frame}
\begin{frame}[plain]
\huge{3. Programmierstil}
\end{frame}
@ -584,6 +604,7 @@ legend('show')
Code: A Handbook of Agile Software Craftmanship}, Prentice Hall
\end{frame}
\end{document}
\begin{frame}[plain]
\huge{4. Vom Problem zum Algorithmus zum Programm}\\