More pagebreak fixing
This commit is contained in:
parent
a125bca9ac
commit
7719cb3385
@ -216,7 +216,7 @@
|
||||
\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{\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: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% usage:
|
||||
|
@ -1,15 +1,11 @@
|
||||
clear all
|
||||
close all
|
||||
|
||||
load('pyramidal_response.mat')
|
||||
threshold = 20; % mV
|
||||
|
||||
figure()
|
||||
hold on
|
||||
plot(time*1000.0, neuronal_data, 'color', [0.2 0.5 0.7], 'linewidth', 1., ...
|
||||
'displayname', 'Membrane voltage')
|
||||
plot(spikes*1000.0, ones(size(spikes)) .* threshold, 'r.', 'markersize', 15, ...
|
||||
'displayname', 'Spike times')
|
||||
plot(time*1000.0, neuronal_data, 'color', [0.2 0.5 0.7], ...
|
||||
'linewidth', 1., 'displayname', 'Membrane voltage')
|
||||
plot(spikes*1000.0, ones(size(spikes)) .* threshold, 'r.', ...
|
||||
'markersize', 15, 'displayname', 'Spike times')
|
||||
line([time(1) time(end)], [threshold threshold], 'linestyle', '--', ...
|
||||
'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, 'tickdir','out', 'linewidth', 1.5, 'fontname', 'times', ...
|
||||
'fontsize', 11)
|
||||
set(gcf, 'paperunits', 'centimeters', 'papersize', [15 7.5]);
|
||||
set(gcf, 'paperposition',[0.0 0.0 15, 7.5], 'color', 'white')
|
||||
set(gcf, 'paperunits', 'centimeters', 'papersize', [15 7]);
|
||||
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')
|
Binary file not shown.
@ -149,6 +149,23 @@ hinzuzuf\"ugen: (i) das Graphische User Interface oder (ii) die
|
||||
Kommandozeile. Beide haben ihre Berechtigung sowie Vor- und
|
||||
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
|
||||
(\figref{ploteditorfig}) zu bearbeiten sind die erhaltenen Ergebnisse
|
||||
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
|
||||
\"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
|
||||
werden k\"onnen, sind auch \"uber Befehle auf der Kommandozeile
|
||||
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
|
||||
(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.}
|
||||
Es gibt zwei grunds\"atzlich verschiedene Arten von Dateiformaten f\"ur
|
||||
Graphiken:
|
||||
@ -440,6 +426,20 @@ Homepage viele Beispiele mit zugeh\"origem Code
|
||||
Rastergraphik allerdings deutlich schneller und speichereffizienter.
|
||||
\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}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
\lstset{inputpath=../code}
|
||||
\graphicspath{{images/}}
|
||||
|
||||
\setcounter{page}{3}
|
||||
\setcounter{page}{15}
|
||||
\setcounter{chapter}{0}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -223,7 +223,7 @@ end
|
||||
end
|
||||
\end{lstlisting}
|
||||
|
||||
\clearpage
|
||||
\pagebreak[4]
|
||||
|
||||
\begin{lstlisting}[label=cleancode, caption={\"Ubersichtliche Implementation des Random-walk.}]
|
||||
num_runs = 10;
|
||||
@ -272,6 +272,7 @@ ein v\"ollig unn\"otiger Kommentar.
|
||||
\end{itemize}
|
||||
\end{important}
|
||||
|
||||
\pagebreak[4]
|
||||
\section{Dokumentation von Funktionen}
|
||||
|
||||
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
|
||||
lokale Funktion.
|
||||
|
||||
\pagebreak[3]
|
||||
\lstinputlisting[label=localfunctions, caption={Beispiel f\"ur den
|
||||
Einsatz von lokalen Funktionen.}]{calculate_sines.m}
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
% check whether the median returned by mymedian
|
||||
% really separates a vector into two halfs
|
||||
for i = 1:140 % loop over different length
|
||||
for k = 1:10 % try several times
|
||||
a = randn( i, 1 ); % generate some data
|
||||
m = mymedian( a ); % compute median
|
||||
for i = 1:140 % loop over different length
|
||||
for k = 1:10 % try several times
|
||||
a = randn( i, 1 ); % generate some data
|
||||
m = mymedian( a ); % compute median
|
||||
if length( a(a>m) ) ~= length( a(a<m) ) % check
|
||||
disp( 'error!' )
|
||||
end
|
||||
|
@ -1,15 +1,14 @@
|
||||
x = randn( 100, 1 ); % generate some data
|
||||
db1=2;
|
||||
db2 = 0.5;
|
||||
bins1 = -4:db1:4; % large bins
|
||||
bins2 = -4:db2:4; % small bins
|
||||
x = randn(100, 1); % generate some data
|
||||
|
||||
bins1 = -4:2:4; % large bins
|
||||
bins2 = -4:0.5:4; % small bins
|
||||
[h1,b1] = hist(x,bins1);
|
||||
[h2,b2] = hist(x,bins2);
|
||||
|
||||
subplot( 1, 2, 1 );
|
||||
bar(b1,h1)
|
||||
bar(b1, h1)
|
||||
hold on
|
||||
bar(b2,h2, 'facecolor', 'r' )
|
||||
bar(b2, h2, 'facecolor', 'r' )
|
||||
xlabel('x')
|
||||
ylabel('Frequency')
|
||||
hold off
|
||||
|
@ -12,16 +12,15 @@ hold off
|
||||
|
||||
% compute integral between x1 and x2:
|
||||
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:
|
||||
r = randn( 10000, 1 );
|
||||
|
||||
% check P:
|
||||
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:
|
||||
P = sum(p)*dx;
|
||||
fprintf( 'The integral between -infinity and +infinity is %.3g\n', P );
|
||||
fprintf( 'I.e. the probability to get any number is %.3g\n', P );
|
||||
fprintf( 'Integral between -infinity and +infinity: %.3g\n', P );
|
||||
|
@ -5,7 +5,7 @@ rng = np.random.RandomState(981)
|
||||
x = rng.randn( 40, 10 )
|
||||
|
||||
plt.xkcd()
|
||||
fig = plt.figure( figsize=(6,4) )
|
||||
fig = plt.figure( figsize=(6,3.4) )
|
||||
ax = fig.add_subplot( 1, 1, 1 )
|
||||
ax.spines['right'].set_visible(False)
|
||||
ax.spines['top'].set_visible(False)
|
||||
|
@ -8,7 +8,7 @@ x1=0.0
|
||||
x2=1.0
|
||||
|
||||
plt.xkcd()
|
||||
fig = plt.figure( figsize=(6,3.8) )
|
||||
fig = plt.figure( figsize=(6,3.4) )
|
||||
ax = fig.add_subplot( 1, 1, 1 )
|
||||
ax.spines['right'].set_visible(False)
|
||||
ax.spines['top'].set_visible(False)
|
||||
|
@ -7,7 +7,7 @@ g = np.exp(-0.5*x*x)/np.sqrt(2.0*np.pi)
|
||||
q = [ -0.67488, 0.0, 0.67488 ]
|
||||
|
||||
plt.xkcd()
|
||||
fig = plt.figure( figsize=(6,4) )
|
||||
fig = plt.figure( figsize=(6,3.4) )
|
||||
ax = fig.add_subplot( 1, 1, 1 )
|
||||
ax.spines['right'].set_visible(False)
|
||||
ax.spines['top'].set_visible(False)
|
||||
|
@ -60,6 +60,11 @@ nicht kleiner als der Median ist (\figref{medianfig}).
|
||||
insbesondere verschieden lange Datenvektoren testen.}
|
||||
\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
|
||||
ihrere \determ[Quartil]{Quartile} charakterisiert werden. Zwischen den
|
||||
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
|
||||
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}]
|
||||
% Die Quartile Q1, Q2 und Q3 unterteilen die Daten in vier gleich
|
||||
% 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
|
||||
\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]
|
||||
\includegraphics[width=1\textwidth]{diehistograms}
|
||||
\titlecaption{\label{diehistogramsfig} Histogramme des Ergebnisses
|
||||
@ -143,7 +129,6 @@ Histogramme k\"onnen verwendet werden, um die
|
||||
vergleichbar.}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
Bei ganzzahligen Messdaten (z.B. die Augenzahl eines W\"urfels oder
|
||||
die Anzahl von Aktionspotentialen in einem bestimmten Zeitfenster)
|
||||
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
|
||||
\[ 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}}
|
||||
|
||||
@ -191,7 +188,9 @@ Da die Wahrscheinlichkeit irgendeines Wertes $x$ Eins ergeben muss gilt die Norm
|
||||
\begin{equation}
|
||||
\label{pdfnorm}
|
||||
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
|
||||
Wahrscheinlichkeitsdichte zuordnet wir auch
|
||||
\determ{Wahrscheinlichkeitsdichtefunktion} (\enterm{probability
|
||||
@ -204,9 +203,7 @@ Wahrscheinlichkeitsdichtefunktion ist die der \determ{Normalverteilung}
|
||||
--- die \determ{Gau{\ss}sche-Glockenkurve} mit Mittelwert $\mu$ und
|
||||
Standardabweichung $\sigma$.
|
||||
|
||||
\newpage
|
||||
\begin{exercise}{gaussianpdf.m}{gaussianpdf.out}
|
||||
\vspace{-3ex}
|
||||
\begin{enumerate}
|
||||
\item Plotte die Wahrscheinlichkeitsdichte der Normalverteilung $p_g(x)$.
|
||||
\item Berechne f\"ur die Normalverteilung mit Mittelwert Null und
|
||||
@ -237,6 +234,7 @@ Standardabweichung $\sigma$.
|
||||
unterschiedlichen Klassenbreiten. Was f\"allt auf?}
|
||||
\end{exercise}
|
||||
|
||||
\pagebreak[2]
|
||||
Damit Histogramme von reellen Messwerten trotz unterschiedlicher
|
||||
Anzahl von Messungen und unterschiedlicher Klassenbreiten
|
||||
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
|
||||
$\Delta x$ der Klassen geteilt werden (\figref{pdfhistogramfig}).
|
||||
|
||||
\pagebreak[4]
|
||||
\begin{exercise}{gaussianbinsnorm.m}{}
|
||||
Normiere das Histogramm der vorherigen \"Ubung zu einer Wahrscheinlichkeitsdichte.
|
||||
\end{exercise}
|
||||
|
Reference in New Issue
Block a user