More pagebreak fixing

This commit is contained in:
Jan Benda 2015-11-27 19:29:39 +01:00
parent a125bca9ac
commit 7719cb3385
13 changed files with 81 additions and 86 deletions

View File

@ -216,7 +216,7 @@
\newcommand{\varcode}[1]{\setlength{\fboxsep}{0.5ex}\colorbox{codeback}{\texttt{#1}}} \newcommand{\varcode}[1]{\setlength{\fboxsep}{0.5ex}\colorbox{codeback}{\texttt{#1}}}
\newcommand{\code}[2][]{\varcode{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[code]{#2}}{\protect\sindex[code]{#1}}} \newcommand{\code}[2][]{\varcode{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[code]{#2}}{\protect\sindex[code]{#1}}}
\newcommand{\matlab}{\texorpdfstring{MATLAB$^{\copyright}$}{MATLAB}} \newcommand{\matlab}{\texorpdfstring{MATLAB$^{\copyright}$}{MATLAB}}
\newcommand{\matlabfun}[2][]{(\tr{\matlab-function}{\matlab-Funktion} \setlength{\fboxsep}{0.5ex}\colorbox{codeback}{\texttt{#1}})\ifthenelse{\equal{#1}{}}{\protect\sindex[code]{#2}}{\protect\sindex[code]{#1}}} \newcommand{\matlabfun}[2][]{(\tr{\matlab-function}{\matlab-Funktion} \setlength{\fboxsep}{0.5ex}\colorbox{codeback}{\texttt{#2}})\ifthenelse{\equal{#1}{}}{\protect\sindex[code]{#2}}{\protect\sindex[code]{#1}}}
%%%%% exercises environment: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% exercises environment: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% usage: % usage:

View File

@ -1,15 +1,11 @@
clear all
close all
load('pyramidal_response.mat') load('pyramidal_response.mat')
threshold = 20; % mV threshold = 20; % mV
figure()
hold on hold on
plot(time*1000.0, neuronal_data, 'color', [0.2 0.5 0.7], 'linewidth', 1., ... plot(time*1000.0, neuronal_data, 'color', [0.2 0.5 0.7], ...
'displayname', 'Membrane voltage') 'linewidth', 1., 'displayname', 'Membrane voltage')
plot(spikes*1000.0, ones(size(spikes)) .* threshold, 'r.', 'markersize', 15, ... plot(spikes*1000.0, ones(size(spikes)) .* threshold, 'r.', ...
'displayname', 'Spike times') 'markersize', 15, 'displayname', 'Spike times')
line([time(1) time(end)], [threshold threshold], 'linestyle', '--', ... line([time(1) time(end)], [threshold threshold], 'linestyle', '--', ...
'linewidth', 0.75, 'color', [0.5 0.5 0.5], 'displayname', 'Threshold') 'linewidth', 0.75, 'color', [0.5 0.5 0.5], 'displayname', 'Threshold')
@ -24,7 +20,7 @@ set(l,'location','northeast', 'fontsize', 11, 'linewidth', 1.);
set(gca, 'xminortick','on','yminortick','on') set(gca, 'xminortick','on','yminortick','on')
set(gca, 'tickdir','out', 'linewidth', 1.5, 'fontname', 'times', ... set(gca, 'tickdir','out', 'linewidth', 1.5, 'fontname', 'times', ...
'fontsize', 11) 'fontsize', 11)
set(gcf, 'paperunits', 'centimeters', 'papersize', [15 7.5]); set(gcf, 'paperunits', 'centimeters', 'papersize', [15 7]);
set(gcf, 'paperposition',[0.0 0.0 15, 7.5], 'color', 'white') set(gcf, 'paperposition',[0.0 0.0 15, 7], 'color', 'white')
saveas(gcf, [pwd '/../lecture/images/spike_detection.pdf'], 'pdf') saveas(gcf, 'spike_detection.pdf', 'pdf')

View File

@ -149,6 +149,23 @@ hinzuzuf\"ugen: (i) das Graphische User Interface oder (ii) die
Kommandozeile. Beide haben ihre Berechtigung sowie Vor- und Kommandozeile. Beide haben ihre Berechtigung sowie Vor- und
Nachteile. Nachteile.
\begin{figure}
\begin{minipage}[t]{0.6\textwidth}
\includegraphics[height=0.29\textheight]{plot_editor}
\end{minipage}
\begin{minipage}[t]{0.3\textwidth}
\includegraphics[height=0.29\textheight]{property_editor}
\end{minipage}
\titlecaption{Der \matlab{} Plot-Editor.}{\"Uber das Menu
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
welches Element des Plots ausgew\"ahlt wurde, ver\"andern sich
die Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
Einstellungen k\"onnen \"uber den ``Property Editor'', rechts,
eingesehen und ver\"andert werden. Der ``Property Editor'' ist
\"uber die Schaltfl\"ache ``More Properties''
erreichbar.}\label{ploteditorfig}
\end{figure}
W\"ahrend es bequem ist, die Abbildung mit der GUI W\"ahrend es bequem ist, die Abbildung mit der GUI
(\figref{ploteditorfig}) zu bearbeiten sind die erhaltenen Ergebnisse (\figref{ploteditorfig}) zu bearbeiten sind die erhaltenen Ergebnisse
nicht einfach reproduzierbar oder \"ubertragbar. Wenn eine Abbildung nicht einfach reproduzierbar oder \"ubertragbar. Wenn eine Abbildung
@ -170,23 +187,6 @@ Jedes dieser Elemente bietet eine Vielzahl von
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
\"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden. \"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden.
\begin{figure}
\begin{minipage}[t]{0.6\columnwidth}
\includegraphics[width=0.9\textwidth]{plot_editor}
\end{minipage}
\begin{minipage}[t]{0.3\columnwidth}
\includegraphics[width=0.9\textwidth]{property_editor}
\end{minipage}
\titlecaption{Der \matlab{} Plot-Editor.}{\"Uber das Menu
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
welches Element des Plots ausgew\"ahlt wurde, ver\"andern sich
die Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
Einstellungen k\"onnen \"uber den ``Property Editor'', rechts,
eingesehen und ver\"andert werden. Der ``Property Editor'' ist
\"uber die Schaltfl\"ache ``More Properties''
erreichbar.}\label{ploteditorfig}
\end{figure}
Alle Einstellungen, die \"uber das graphische Interface vorgenommen Alle Einstellungen, die \"uber das graphische Interface vorgenommen
werden k\"onnen, sind auch \"uber Befehle auf der Kommandozeile werden k\"onnen, sind auch \"uber Befehle auf der Kommandozeile
m\"oglich. Auf diese Weise k\"onnen Einstellungen problemlos in ein m\"oglich. Auf diese Weise k\"onnen Einstellungen problemlos in ein
@ -376,20 +376,6 @@ erstes Argument wieder ein Handle auf die Figure erwartet. Das zweite
Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format
(Box \ref{graphicsformatbox}) angegeben werden. (Box \ref{graphicsformatbox}) angegeben werden.
\lstinputlisting[caption={Skript zur Erstellung des Plots in \figref{spikedetectionfig}.}, label=niceplotlisting]{automatic_plot.m}
\begin{figure}[t]
\includegraphics{spike_detection}
\titlecaption{Automatisch erstellter Plot.}{Dieser Plot wurde vollst\"andig
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
gespeichert.}\label{spikedetectionfig}
\end{figure}
Neben den Standard-Linienplots gibt es eine ganze Reihe weiterer
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt auf seiner
Homepage viele Beispiele mit zugeh\"origem Code
\url{http://www.mathworks.de/discovery/gallery.html}.
\begin{ibox}[t]{\label{graphicsformatbox}Dateiformate f\"ur Abbildungen.} \begin{ibox}[t]{\label{graphicsformatbox}Dateiformate f\"ur Abbildungen.}
Es gibt zwei grunds\"atzlich verschiedene Arten von Dateiformaten f\"ur Es gibt zwei grunds\"atzlich verschiedene Arten von Dateiformaten f\"ur
Graphiken: Graphiken:
@ -440,6 +426,20 @@ Homepage viele Beispiele mit zugeh\"origem Code
Rastergraphik allerdings deutlich schneller und speichereffizienter. Rastergraphik allerdings deutlich schneller und speichereffizienter.
\end{ibox} \end{ibox}
\begin{figure}[t]
\includegraphics{spike_detection}
\titlecaption{Automatisch erstellter Plot.}{Dieser Plot wurde vollst\"andig
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
gespeichert.}\label{spikedetectionfig}
\end{figure}
\lstinputlisting[caption={Skript zur Erstellung des Plots in \figref{spikedetectionfig}.}, label=niceplotlisting]{automatic_plot.m}
Neben den Standard-Linienplots gibt es eine ganze Reihe weiterer
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt auf seiner
Homepage viele Beispiele mit zugeh\"origem Code
\url{http://www.mathworks.de/discovery/gallery.html}.
\section{Fazit} \section{Fazit}

View File

@ -5,7 +5,7 @@
\lstset{inputpath=../code} \lstset{inputpath=../code}
\graphicspath{{images/}} \graphicspath{{images/}}
\setcounter{page}{3} \setcounter{page}{15}
\setcounter{chapter}{0} \setcounter{chapter}{0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -223,7 +223,7 @@ end
end end
\end{lstlisting} \end{lstlisting}
\clearpage \pagebreak[4]
\begin{lstlisting}[label=cleancode, caption={\"Ubersichtliche Implementation des Random-walk.}] \begin{lstlisting}[label=cleancode, caption={\"Ubersichtliche Implementation des Random-walk.}]
num_runs = 10; num_runs = 10;
@ -272,6 +272,7 @@ ein v\"ollig unn\"otiger Kommentar.
\end{itemize} \end{itemize}
\end{important} \end{important}
\pagebreak[4]
\section{Dokumentation von Funktionen} \section{Dokumentation von Funktionen}
Bei allen vordefinierten \matlab{} Funktionen findet sich am Anfang Bei allen vordefinierten \matlab{} Funktionen findet sich am Anfang
@ -330,6 +331,7 @@ sogenannte \codeterm[Funktion!lokale]{lokale Funktionen} oder auch
erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine
lokale Funktion. lokale Funktion.
\pagebreak[3]
\lstinputlisting[label=localfunctions, caption={Beispiel f\"ur den \lstinputlisting[label=localfunctions, caption={Beispiel f\"ur den
Einsatz von lokalen Funktionen.}]{calculate_sines.m} Einsatz von lokalen Funktionen.}]{calculate_sines.m}

View File

@ -1,8 +1,7 @@
x = randn(100, 1); % generate some data x = randn(100, 1); % generate some data
db1=2;
db2 = 0.5; bins1 = -4:2:4; % large bins
bins1 = -4:db1:4; % large bins bins2 = -4:0.5:4; % small bins
bins2 = -4:db2:4; % small bins
[h1,b1] = hist(x,bins1); [h1,b1] = hist(x,bins1);
[h2,b2] = hist(x,bins2); [h2,b2] = hist(x,bins2);

View File

@ -12,16 +12,15 @@ hold off
% compute integral between x1 and x2: % compute integral between x1 and x2:
P = sum(p((x>=x1)&(x<x2)))*dx; P = sum(p((x>=x1)&(x<x2)))*dx;
fprintf( 'The integral between %.2g and %.2g is %.3g\n', x1, x2, P ); fprintf( 'Integral between %.2g and %.2g: %.3g\n', x1, x2, P );
% draw random numbers: % draw random numbers:
r = randn( 10000, 1 ); r = randn( 10000, 1 );
% check P: % check P:
Pr = sum((r>=x1)&(r<x2))/length(r); Pr = sum((r>=x1)&(r<x2))/length(r);
fprintf( 'The probability of getting a number between %.2g and %.2g is %.3g\n', x1, x2, Pr ); fprintf( 'Probability of a number between %.2g and %.2g: %.3g\n', x1, x2, Pr );
% infinite integral: % infinite integral:
P = sum(p)*dx; P = sum(p)*dx;
fprintf( 'The integral between -infinity and +infinity is %.3g\n', P ); fprintf( 'Integral between -infinity and +infinity: %.3g\n', P );
fprintf( 'I.e. the probability to get any number is %.3g\n', P );

View File

@ -5,7 +5,7 @@ rng = np.random.RandomState(981)
x = rng.randn( 40, 10 ) x = rng.randn( 40, 10 )
plt.xkcd() plt.xkcd()
fig = plt.figure( figsize=(6,4) ) fig = plt.figure( figsize=(6,3.4) )
ax = fig.add_subplot( 1, 1, 1 ) ax = fig.add_subplot( 1, 1, 1 )
ax.spines['right'].set_visible(False) ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False) ax.spines['top'].set_visible(False)

View File

@ -8,7 +8,7 @@ x1=0.0
x2=1.0 x2=1.0
plt.xkcd() plt.xkcd()
fig = plt.figure( figsize=(6,3.8) ) fig = plt.figure( figsize=(6,3.4) )
ax = fig.add_subplot( 1, 1, 1 ) ax = fig.add_subplot( 1, 1, 1 )
ax.spines['right'].set_visible(False) ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False) ax.spines['top'].set_visible(False)

View File

@ -7,7 +7,7 @@ g = np.exp(-0.5*x*x)/np.sqrt(2.0*np.pi)
q = [ -0.67488, 0.0, 0.67488 ] q = [ -0.67488, 0.0, 0.67488 ]
plt.xkcd() plt.xkcd()
fig = plt.figure( figsize=(6,4) ) fig = plt.figure( figsize=(6,3.4) )
ax = fig.add_subplot( 1, 1, 1 ) ax = fig.add_subplot( 1, 1, 1 )
ax.spines['right'].set_visible(False) ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False) ax.spines['top'].set_visible(False)

View File

@ -60,6 +60,11 @@ nicht kleiner als der Median ist (\figref{medianfig}).
insbesondere verschieden lange Datenvektoren testen.} insbesondere verschieden lange Datenvektoren testen.}
\end{exercise} \end{exercise}
\begin{figure}[t]
\includegraphics[width=1\textwidth]{quartile}
\titlecaption{\label{quartilefig} Median und Quartile einer Normalverteilung.}{}
\end{figure}
Eine Wahrscheinlichkeitsverteilung kann weiter durch die Position Eine Wahrscheinlichkeitsverteilung kann weiter durch die Position
ihrere \determ[Quartil]{Quartile} charakterisiert werden. Zwischen den ihrere \determ[Quartil]{Quartile} charakterisiert werden. Zwischen den
Quartilen liegen jeweils 25\,\% der Daten Quartilen liegen jeweils 25\,\% der Daten
@ -67,11 +72,6 @@ Quartilen liegen jeweils 25\,\% der Daten
Einteilung. Das 3. Quartil ist das 75. Perzentil, da 75\,\% der Daten Einteilung. Das 3. Quartil ist das 75. Perzentil, da 75\,\% der Daten
unterhalb des 3. Quartils liegen. unterhalb des 3. Quartils liegen.
\begin{figure}[t]
\includegraphics[width=1\textwidth]{quartile}
\titlecaption{\label{quartilefig} Median und Quartile einer Normalverteilung.}{}
\end{figure}
% \begin{definition}[\tr{quartile}{Quartile}] % \begin{definition}[\tr{quartile}{Quartile}]
% Die Quartile Q1, Q2 und Q3 unterteilen die Daten in vier gleich % Die Quartile Q1, Q2 und Q3 unterteilen die Daten in vier gleich
% gro{\ss}e Gruppen, die jeweils ein Viertel der Daten enthalten. % gro{\ss}e Gruppen, die jeweils ein Viertel der Daten enthalten.
@ -119,20 +119,6 @@ Wertebereich meist in angrenzende und gleich gro{\ss}e Intervalle.
Histogramme k\"onnen verwendet werden, um die Histogramme k\"onnen verwendet werden, um die
\determ{Wahrscheinlichkeitsverteilung} der Messwerte abzusch\"atzen. \determ{Wahrscheinlichkeitsverteilung} der Messwerte abzusch\"atzen.
\begin{exercise}{rollthedie.m}{}
\tr{Write a function that simulates rolling a die $n$ times.}
{Schreibe eine Funktion, die das $n$-malige W\"urfeln mit einem W\"urfel simuliert.}
\end{exercise}
\begin{exercise}{diehistograms.m}{}
\tr{Plot histograms from rolling the die 20, 100, 1000 times. Use
the plain hist(x) function, force 6 bins via hist( x, 6 ), and set
meaningfull bins positions.} {Plotte Histogramme von 20, 100, und
1000-mal w\"urfeln. Benutze \code[hist()]{hist(x)}, erzwinge sechs Bins
mit \code[hist()]{hist(x,6)}, oder setze selbst sinnvolle Bins. Normiere
anschliessend das Histogram auf geeignete Weise.}
\end{exercise}
\begin{figure}[t] \begin{figure}[t]
\includegraphics[width=1\textwidth]{diehistograms} \includegraphics[width=1\textwidth]{diehistograms}
\titlecaption{\label{diehistogramsfig} Histogramme des Ergebnisses \titlecaption{\label{diehistogramsfig} Histogramme des Ergebnisses
@ -143,7 +129,6 @@ Histogramme k\"onnen verwendet werden, um die
vergleichbar.} vergleichbar.}
\end{figure} \end{figure}
\newpage
Bei ganzzahligen Messdaten (z.B. die Augenzahl eines W\"urfels oder Bei ganzzahligen Messdaten (z.B. die Augenzahl eines W\"urfels oder
die Anzahl von Aktionspotentialen in einem bestimmten Zeitfenster) die Anzahl von Aktionspotentialen in einem bestimmten Zeitfenster)
kann f\"ur jede auftretende Zahl eine Klasse definiert werden. Damit kann f\"ur jede auftretende Zahl eine Klasse definiert werden. Damit
@ -154,6 +139,18 @@ Histogrammbalken gibt dann die Wahrscheinlichkeit $P(x_i)$ des
Auftretens der Gr\"o{\ss}e $x_i$ in der $i$-ten Klasse an Auftretens der Gr\"o{\ss}e $x_i$ in der $i$-ten Klasse an
\[ P_i = \frac{n_i}{N} = \frac{n_i}{\sum_{i=1}^M n_i} \; . \] \[ P_i = \frac{n_i}{N} = \frac{n_i}{\sum_{i=1}^M n_i} \; . \]
\begin{exercise}{rollthedie.m}{}
\tr{Write a function that simulates rolling a die $n$ times.}
{Schreibe eine Funktion, die das $n$-malige W\"urfeln mit einem W\"urfel simuliert.}
\end{exercise}
\begin{exercise}{diehistograms.m}{}
Plotte Histogramme von 20, 100, und 1000-mal W\"urfeln. Benutze
\code[hist()]{hist(x)}, erzwinge sechs Bins mit
\code[hist()]{hist(x,6)}, oder setze selbst sinnvolle Bins. Normiere
anschliessend das Histogram.
\end{exercise}
\section{\tr{Probability density function}{Wahrscheinlichkeitsdichte}} \section{\tr{Probability density function}{Wahrscheinlichkeitsdichte}}
@ -192,6 +189,8 @@ Da die Wahrscheinlichkeit irgendeines Wertes $x$ Eins ergeben muss gilt die Norm
\label{pdfnorm} \label{pdfnorm}
P(-\infty < x < \infty) = \int\limits_{-\infty}^{+\infty} p(x) \, dx = 1 \; . P(-\infty < x < \infty) = \int\limits_{-\infty}^{+\infty} p(x) \, dx = 1 \; .
\end{equation} \end{equation}
\pagebreak[2]
Die gesamte Funktion $p(x)$, die jedem Wert $x$ einen Die gesamte Funktion $p(x)$, die jedem Wert $x$ einen
Wahrscheinlichkeitsdichte zuordnet wir auch Wahrscheinlichkeitsdichte zuordnet wir auch
\determ{Wahrscheinlichkeitsdichtefunktion} (\enterm{probability \determ{Wahrscheinlichkeitsdichtefunktion} (\enterm{probability
@ -204,9 +203,7 @@ Wahrscheinlichkeitsdichtefunktion ist die der \determ{Normalverteilung}
--- die \determ{Gau{\ss}sche-Glockenkurve} mit Mittelwert $\mu$ und --- die \determ{Gau{\ss}sche-Glockenkurve} mit Mittelwert $\mu$ und
Standardabweichung $\sigma$. Standardabweichung $\sigma$.
\newpage
\begin{exercise}{gaussianpdf.m}{gaussianpdf.out} \begin{exercise}{gaussianpdf.m}{gaussianpdf.out}
\vspace{-3ex}
\begin{enumerate} \begin{enumerate}
\item Plotte die Wahrscheinlichkeitsdichte der Normalverteilung $p_g(x)$. \item Plotte die Wahrscheinlichkeitsdichte der Normalverteilung $p_g(x)$.
\item Berechne f\"ur die Normalverteilung mit Mittelwert Null und \item Berechne f\"ur die Normalverteilung mit Mittelwert Null und
@ -237,6 +234,7 @@ Standardabweichung $\sigma$.
unterschiedlichen Klassenbreiten. Was f\"allt auf?} unterschiedlichen Klassenbreiten. Was f\"allt auf?}
\end{exercise} \end{exercise}
\pagebreak[2]
Damit Histogramme von reellen Messwerten trotz unterschiedlicher Damit Histogramme von reellen Messwerten trotz unterschiedlicher
Anzahl von Messungen und unterschiedlicher Klassenbreiten Anzahl von Messungen und unterschiedlicher Klassenbreiten
untereinander vergleichbar werden und mit bekannten untereinander vergleichbar werden und mit bekannten
@ -255,6 +253,7 @@ und das normierte Histogramm hat die H\"ohe
Es muss also nicht nur durch die Summe, sondern auch durch die Breite Es muss also nicht nur durch die Summe, sondern auch durch die Breite
$\Delta x$ der Klassen geteilt werden (\figref{pdfhistogramfig}). $\Delta x$ der Klassen geteilt werden (\figref{pdfhistogramfig}).
\pagebreak[4]
\begin{exercise}{gaussianbinsnorm.m}{} \begin{exercise}{gaussianbinsnorm.m}{}
Normiere das Histogramm der vorherigen \"Ubung zu einer Wahrscheinlichkeitsdichte. Normiere das Histogramm der vorherigen \"Ubung zu einer Wahrscheinlichkeitsdichte.
\end{exercise} \end{exercise}