Merge branch 'master' of raven.am28.uni-tuebingen.de:scientificComputing
This commit is contained in:
commit
d9921cc9ae
BIN
programming/exercises/ampullary.mat
Normal file
BIN
programming/exercises/ampullary.mat
Normal file
Binary file not shown.
@ -131,20 +131,21 @@ T\"ubingen, Abt. Neuroethologie }}
|
|||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section{Boolesche Operationen}
|
\section{Boolesche Operationen}
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Gegeben sind \verb+x = (1:10)+ und
|
\item Gegeben sind zwei Vektoren \verb+x = [1 5 2 8 9 0 1]+ und
|
||||||
\verb+y = [3 1 5 6 8 2 9 4 7 0]+. Try to understand the following
|
\verb+y = [5 2 2 6 0 0 2]+. F\"uhre aus und erkl\"are.
|
||||||
commands.
|
\begin{enumerate}
|
||||||
\begin{enumerate}
|
\item \verb+x > y+
|
||||||
\item \verb+x( (y <= 2) )+
|
\item \verb+y < x+
|
||||||
\item \verb+x( (x > 2) | (y < 8) )+
|
\item \verb+x == y+
|
||||||
\item \verb+x( (x == 0) \& (y == 0) )+
|
\item \verb+x ~= y+
|
||||||
\end{enumerate}
|
\item \verb+x & ~y+
|
||||||
\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 \verb+x | y+
|
||||||
\item Ermittle die Anzahl Elemente fuer jede Klasse mithilfe eines Booleschen Ausdrucks.
|
\end{enumerate}
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
\newpage
|
||||||
\section{Logische Indizierung}
|
\section{Logische Indizierung}
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Gegeben sind \verb+x = (1:10)+ und
|
\item Gegeben sind \verb+x = (1:10)+ und
|
||||||
@ -153,12 +154,13 @@ T\"ubingen, Abt. Neuroethologie }}
|
|||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \verb+x( (y <= 2) )+
|
\item \verb+x( (y <= 2) )+
|
||||||
\item \verb+x( (x > 2) | (y < 8) )+
|
\item \verb+x( (x > 2) | (y < 8) )+
|
||||||
\item \verb+x( (x == 0) \& (y == 0) )+
|
\item \verb+x( (x == 0) & (y == 0) )+
|
||||||
\end{enumerate}
|
\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 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 Ermittle die Anzahl Elemente fuer jede Klasse mithilfe eines Booleschen Ausdrucks.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section{Kontrollstrukturen}
|
\section{Kontrollstrukturen}
|
||||||
|
|
||||||
|
16
programming/exercises/psths.m
Normal file
16
programming/exercises/psths.m
Normal file
@ -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
|
@ -201,9 +201,8 @@
|
|||||||
\textbf{P}eri- \textbf{S}timulus - \textbf{T}ime - \textbf{H}istogram
|
\textbf{P}eri- \textbf{S}timulus - \textbf{T}ime - \textbf{H}istogram
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
%\includegraphics[width=0.375\columnwidth]{images/rasterplot}
|
\includegraphics[width=0.75\columnwidth]{images/psth}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
Wof\"ur eignet sich ein solcher Rasterplot (auch \textit{dotdisplay} genannt)?
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
@ -855,7 +855,7 @@ Alternativ zum ``subscript indexing'' koennen die Elemente von Matrizen auch lin
|
|||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \verb+x( (y <= 2) )+
|
\item \verb+x( (y <= 2) )+
|
||||||
\item \verb+x( (x > 2) | (y < 8) )+
|
\item \verb+x( (x > 2) | (y < 8) )+
|
||||||
\item \verb+x( (x == 0) \& (y == 0) )+
|
\item \verb+x( (x == 0) & (y == 0) )+
|
||||||
\end{enumerate}
|
\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 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 Ermittle die Anzahl Elemente fuer jede Klasse mithilfe eines Booleschen Ausdrucks.
|
||||||
|
@ -140,7 +140,7 @@
|
|||||||
\end{itemize}\pause
|
\end{itemize}\pause
|
||||||
Wenn es zum Leben erweckt wird...
|
Wenn es zum Leben erweckt wird...
|
||||||
\begin{itemize}
|
\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{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
@ -155,9 +155,9 @@
|
|||||||
\item Objekte (werden wir ignorieren)
|
\item Objekte (werden wir ignorieren)
|
||||||
\end{enumerate}\pause
|
\end{enumerate}\pause
|
||||||
\item Alle werden in sogenannte m-files gespeichert (z.B. \textit{meinProgramm.m}).
|
\item Alle werden in sogenannte m-files gespeichert (z.B. \textit{meinProgramm.m}).
|
||||||
\item Koennen dann von der Kommandozeile aufgerufen werden.
|
\item K\"onnen dann von der Kommandozeile aufgerufen werden.
|
||||||
\item Programme erhoehen die Wiederverwertbarkeit von Programmcode.
|
\item Programme erh\"ohen die Wiederverwertbarkeit von Programmcode.
|
||||||
\item Programme koennen andere Programme aufrufen.
|
\item Programme k\"onnen andere Programme aufrufen.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
@ -313,6 +313,7 @@ function y = plot_sinus(frequenz, amplitude)
|
|||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Programmierstil}
|
\frametitle{Programmierstil}
|
||||||
Ihr d\"urft all das missachten und einen eingenen Stil entwickeln. Aber:\\
|
Ihr d\"urft all das missachten und einen eingenen Stil entwickeln. Aber:\\
|
||||||
@ -327,26 +328,6 @@ function y = plot_sinus(frequenz, amplitude)
|
|||||||
\end{frame}
|
\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]
|
\begin{frame}[plain]
|
||||||
\huge{4. Vom Problem zum Algorithmus zum Programm}\\
|
\huge{4. Vom Problem zum Algorithmus zum Programm}\\
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
@ -355,11 +336,12 @@ function y = plot_sinus(frequenz, amplitude)
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Vom Problem zum Algorithmus}
|
\frametitle{Vom Problem zum Algorithmus}
|
||||||
\framesubtitle{Uff, schwierig...}
|
\framesubtitle{Uff, schwierig...}
|
||||||
\begin{enumerate}
|
\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 Begr\"abt alle Angst vor Fehlern. \pause
|
||||||
\item Macht sich klar, was das die Ausgangsituation ist.\pause
|
\item Macht sich klar, was das die Ausgangsituation ist.\pause
|
||||||
\item Macht sich klar, was das Ziel ist.\pause
|
\item Macht sich klar, was das Ziel ist.\pause
|
||||||
@ -367,9 +349,30 @@ function y = plot_sinus(frequenz, amplitude)
|
|||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{frame}
|
\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}
|
\begin{frame}
|
||||||
\frametitle{Vom Problem zum Algorithmus}
|
\frametitle{Vom Problem zum Algorithmus}
|
||||||
\framesubtitle{Uff, schwierig...}
|
\framesubtitle{\"Ubungen - eine Herausforderung}
|
||||||
Wie w\"are es mit folgendem Problem:\\
|
Wie w\"are es mit folgendem Problem:\\
|
||||||
Ich habe die Aufnahme des Membranpotentials einer Nervenzelle...
|
Ich habe die Aufnahme des Membranpotentials einer Nervenzelle...
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
|
Reference in New Issue
Block a user