diff --git a/programming/exercises/ampullary.mat b/programming/exercises/ampullary.mat new file mode 100644 index 0000000..b841333 Binary files /dev/null and b/programming/exercises/ampullary.mat differ diff --git a/programming/exercises/day_1_exercises.tex b/programming/exercises/day_1_exercises.tex index 7e6a431..0796228 100644 --- a/programming/exercises/day_1_exercises.tex +++ b/programming/exercises/day_1_exercises.tex @@ -131,20 +131,21 @@ T\"ubingen, Abt. Neuroethologie }} \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. +\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 @@ -153,12 +154,13 @@ T\"ubingen, Abt. Neuroethologie }} \begin{enumerate} \item \verb+x( (y <= 2) )+ \item \verb+x( (x > 2) | (y < 8) )+ - \item \verb+x( (x == 0) \& (y == 0) )+ + \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} diff --git a/programming/exercises/psths.m b/programming/exercises/psths.m new file mode 100644 index 0000000..7d76c86 --- /dev/null +++ b/programming/exercises/psths.m @@ -0,0 +1,16 @@ +load('ampullary.mat') +fig = figure(); + +%% create PSTH on the basis of the interspike intervals +fig.sub +% 1. get the interspike intervals for each trial +for i = 1:size(times,2) + isi = diff(times{i}); + +end + +%% create PSTH using the binning method + + + +%% create PSTH using the kernel-convolution method \ No newline at end of file diff --git a/programming/lectures/plotting_spike_trains.tex b/programming/lectures/plotting_spike_trains.tex index 4ae5ffa..00028f7 100644 --- a/programming/lectures/plotting_spike_trains.tex +++ b/programming/lectures/plotting_spike_trains.tex @@ -201,9 +201,8 @@ \textbf{P}eri- \textbf{S}timulus - \textbf{T}ime - \textbf{H}istogram \begin{figure} \centering - %\includegraphics[width=0.375\columnwidth]{images/rasterplot} + \includegraphics[width=0.75\columnwidth]{images/psth} \end{figure} - Wof\"ur eignet sich ein solcher Rasterplot (auch \textit{dotdisplay} genannt)? \end{frame} diff --git a/programming/lectures/programming_basics.tex b/programming/lectures/programming_basics.tex index 9dc202e..daf56d2 100644 --- a/programming/lectures/programming_basics.tex +++ b/programming/lectures/programming_basics.tex @@ -855,7 +855,7 @@ Alternativ zum ``subscript indexing'' koennen die Elemente von Matrizen auch lin \begin{enumerate} \item \verb+x( (y <= 2) )+ \item \verb+x( (x > 2) | (y < 8) )+ - \item \verb+x( (x == 0) \& (y == 0) )+ + \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. diff --git a/programming/lectures/scripts_functions.tex b/programming/lectures/scripts_functions.tex index 6b37880..94df3d4 100644 --- a/programming/lectures/scripts_functions.tex +++ b/programming/lectures/scripts_functions.tex @@ -140,7 +140,7 @@ \end{itemize}\pause Wenn es zum Leben erweckt wird... \begin{itemize} - \item ... wird es Zeile fuer Zeile von oben nach unten ausgef\"urht. + \item ... wird es Zeile fuer Zeile von oben nach unten ausgef\"uhrt. \end{itemize} \end{frame} @@ -155,9 +155,9 @@ \item Objekte (werden wir ignorieren) \end{enumerate}\pause \item Alle werden in sogenannte m-files gespeichert (z.B. \textit{meinProgramm.m}). - \item Koennen dann von der Kommandozeile aufgerufen werden. - \item Programme erhoehen die Wiederverwertbarkeit von Programmcode. - \item Programme koennen andere Programme aufrufen. + \item K\"onnen dann von der Kommandozeile aufgerufen werden. + \item Programme erh\"ohen die Wiederverwertbarkeit von Programmcode. + \item Programme k\"onnen andere Programme aufrufen. \end{itemize} \end{frame} @@ -313,6 +313,7 @@ function y = plot_sinus(frequenz, amplitude) \end{enumerate} \end{frame} + \begin{frame}[fragile] \frametitle{Programmierstil} Ihr d\"urft all das missachten und einen eingenen Stil entwickeln. Aber:\\ @@ -327,26 +328,6 @@ function y = plot_sinus(frequenz, amplitude) \end{frame} -\begin{frame}[fragile] - \frametitle{Funktionen} - \frametitle{\"Ubungen} - \begin{enumerate} - \item Schreibe eine Funktion \verb+plotSineWave+ die die amplitude - des Sinus als Argument entgegennimmt. - \item Erweitere die Funktion in der Weise, dass sie zus\"atzlich die - gew\"uenschte Frequnez \"ubernimmt. - \item Erweitere \verb+plotSineWave+ so, dass sie eine Schar von - Sinuswellen unterschiedlicher Frequenz plottet. - \item Erweitere \verb+plotSinWave+ so, dass auch die Amplitude als - Vektor \"ubergeben werden kann. Die Funktion soll alle m\"oglichen - Kombinationen darstellen. - \item Erweitere \verb+plotSinWave+ so, dass die berechnete Sinus in einer 2-D Matrize zurckgegeben werden. - \item F\"uge zwei weitere R\"uckgabeparameter hinzu, die f\"ur jede - Berechnung die Amplitude und Frequenz zur\"uckgeben. - \end{enumerate} -\end{frame} - - \begin{frame}[plain] \huge{4. Vom Problem zum Algorithmus zum Programm}\\ \begin{figure} @@ -355,11 +336,12 @@ function y = plot_sinus(frequenz, amplitude) \end{figure} \end{frame} + \begin{frame} \frametitle{Vom Problem zum Algorithmus} \framesubtitle{Uff, schwierig...} \begin{enumerate} - \item Am besten f\"angt man mit einem wei\{ss}en Blatt an. :-) \pause + \item Am besten f\"angt man mit einem weissen Blatt an. :-) \pause \item Begr\"abt alle Angst vor Fehlern. \pause \item Macht sich klar, was das die Ausgangsituation ist.\pause \item Macht sich klar, was das Ziel ist.\pause @@ -367,9 +349,30 @@ function y = plot_sinus(frequenz, amplitude) \end{enumerate} \end{frame} + +\begin{frame}[fragile] + \frametitle{Vom Problem zum Algorithmus} + \frametitle{\"Ubungen - Funktionen} + \begin{enumerate} + \item Schreibe eine Funktion \verb+plotSineWave+ die die Amplitude + des Sinus als Argument entgegennimmt. + \item Erweitere die Funktion in der Weise, dass sie zus\"atzlich die + gew\"uenschte Frequenz \"ubernimmt. + \item Erweitere \verb+plotSineWave+ so, dass sie eine Schar von + Sinuswellen unterschiedlicher Frequenz plottet. + \item Erweitere \verb+plotSinWave+ so, dass auch die Amplitude als + Vektor \"ubergeben werden kann. Die Funktion soll alle m\"oglichen + Kombinationen darstellen. + \item Erweitere \verb+plotSinWave+ so, dass die berechnete Sinus in einer 2-D Matrize zurckgegeben werden. + \item F\"uge zwei weitere R\"uckgabeparameter hinzu, die f\"ur jede + Berechnung die Amplitude und Frequenz zur\"uckgeben. + \end{enumerate} +\end{frame} + + \begin{frame} \frametitle{Vom Problem zum Algorithmus} - \framesubtitle{Uff, schwierig...} + \framesubtitle{\"Ubungen - eine Herausforderung} Wie w\"are es mit folgendem Problem:\\ Ich habe die Aufnahme des Membranpotentials einer Nervenzelle... \begin{enumerate}