further typo fixes
This commit is contained in:
parent
af1faf941c
commit
87496d5f3d
@ -2,9 +2,9 @@ function sines = calculate_sines(x, amplitudes, frequencies)
|
|||||||
% Function calculates sinewaves with all combinations of
|
% Function calculates sinewaves with all combinations of
|
||||||
% given amplitudes and frequencies.
|
% given amplitudes and frequencies.
|
||||||
% Arguments: x, a vector of radiants for which the sine should be
|
% Arguments: x, a vector of radiants for which the sine should be
|
||||||
% computed
|
% computed.
|
||||||
% amplitudes, a vector of amplitudes
|
% amplitudes, a vector of amplitudes.
|
||||||
% frequencies, a vector of frequencies
|
% frequencies, a vector of frequencies.
|
||||||
%
|
%
|
||||||
% Returns: a 3-D Matrix of sinewaves, 2nd dimension represents
|
% Returns: a 3-D Matrix of sinewaves, 2nd dimension represents
|
||||||
% the amplitudes, 3rd the frequencies.
|
% the amplitudes, 3rd the frequencies.
|
||||||
|
@ -37,23 +37,24 @@ werden Programme benannt?
|
|||||||
|
|
||||||
Es hilft ungemein, wenn zusammengeh\"orige Skripte und Funktionen im
|
Es hilft ungemein, wenn zusammengeh\"orige Skripte und Funktionen im
|
||||||
gleichen Ordner auf der Festplatte zu finden sind. Es bietet sich also
|
gleichen Ordner auf der Festplatte zu finden sind. Es bietet sich also
|
||||||
an, f\"ur jede Analyse einen eigenen Ordner anzulegen und in diesem die
|
an, f\"ur jede Analyse einen eigenen Ordner anzulegen und in diesem
|
||||||
zugeh\"origen \codeterm{m-files} abzulegen. Auf eine tiefere
|
die zugeh\"origen \codeterm{m-files} abzulegen. Auf eine tiefere
|
||||||
Schachtelung in weitere Unterordner kann in der Regel verzichtet
|
Schachtelung in weitere Unterordner kann in der Regel verzichtet
|
||||||
werden. \matlab{} erzeugt einen ``MATLAB'' Ordner im eigenen
|
werden. \matlab{} erzeugt einen ``MATLAB'' Ordner im eigenen
|
||||||
\file{Documents} (Linux) oder \file{Eigene Dokumente} (Windows) Ordner. Es
|
\file{Documents} (Linux) oder \file{Eigene Dokumente} (Windows)
|
||||||
bietet sich an, diesen Ordner als Wurzelverzeichnis f\"ur eigene Arbeiten zu
|
Ordner. Es bietet sich an, diesen Ordner als Wurzelverzeichnis f\"ur
|
||||||
verwenden. Nat\"urlich kann auch jeder andere Ort gew\"ahlen
|
eigene Arbeiten zu verwenden. Nat\"urlich kann auch jeder andere Ort
|
||||||
werden. In dem Beispiel in \figref{fileorganizationfig} wird
|
gew\"ahlt werden. In dem Beispiel in \figref{fileorganizationfig} wird
|
||||||
innerhalb dieses Ordners f\"ur jedes Projekt ein eigener Unterordner
|
innerhalb dieses Ordners f\"ur jedes Projekt ein eigener Unterordner
|
||||||
erstellt, in welchem widerum f\"ur jedes Problem, jede Analyse ein
|
erstellt, in welchem wiederum f\"ur jedes Problem, jede Analyse ein
|
||||||
weitere Unterodner erstellt wird. In diesen liegen sowohl die
|
weiterer Unterodner erstellt wird. In diesen liegen sowohl die
|
||||||
ben\"otigten \codeterm{m-files} also auch die Resultate der Analyse (Abbildungen,
|
ben\"otigten \codeterm{m-files} also auch die Resultate der Analyse
|
||||||
Daten-Dateien). Zu bemerken sind noch zwei weitere Dinge. Im Projektordner
|
(Abbildungen, Daten-Dateien). Zu bemerken sind noch zwei weitere
|
||||||
existiert ein Skript (analysis.m), das dazu gedacht ist, alle Analysen
|
Dinge. Im Projektordner existiert ein Skript (analysis.m), das dazu
|
||||||
aufzurufen. Des Weiteren gitb es parallel zu den Projektordnern einen
|
gedacht ist, alle Analysen aufzurufen. Des Weiteren gibt es parallel
|
||||||
\file{functions}-Ordner in dem Funktionen liegen, die in mehr als einem
|
zu den Projektordnern einen \file{functions}-Ordner in dem Funktionen
|
||||||
Projekt oder einer Analyse gebraucht werden.
|
liegen, die in mehr als einem Projekt oder einer Analyse gebraucht
|
||||||
|
werden.
|
||||||
|
|
||||||
Beim Betrachten dieses Layouts f\"allt auf, dass es sehr
|
Beim Betrachten dieses Layouts f\"allt auf, dass es sehr
|
||||||
wahrscheinlich ist, dass bestimmte Namen f\"ur Funktionen und Skripte
|
wahrscheinlich ist, dass bestimmte Namen f\"ur Funktionen und Skripte
|
||||||
@ -65,7 +66,7 @@ aktuellen Ordner nach passenden Dateien sucht (mehr Information zum
|
|||||||
|
|
||||||
\begin{figure}[tp]
|
\begin{figure}[tp]
|
||||||
\includegraphics[width=0.75\textwidth]{program_organization}
|
\includegraphics[width=0.75\textwidth]{program_organization}
|
||||||
\titlecaption{\label{fileorganizationfig} M\"ogliche Oganisation von
|
\titlecaption{\label{fileorganizationfig} M\"ogliche Organisation von
|
||||||
Programmcode im Dateisystem.}{ F\"ur jedes Projekt werden
|
Programmcode im Dateisystem.}{ F\"ur jedes Projekt werden
|
||||||
Unterordner f\"ur die einzelnen Analysen angelegt. Auf Ebene des
|
Unterordner f\"ur die einzelnen Analysen angelegt. Auf Ebene des
|
||||||
Projektes k\"onnte es ein Skript (hier ``analysis.m'') geben,
|
Projektes k\"onnte es ein Skript (hier ``analysis.m'') geben,
|
||||||
@ -106,8 +107,8 @@ aktuellen Ordner nach passenden Dateien sucht (mehr Information zum
|
|||||||
|
|
||||||
\section{Namensgebung von Funktionen und Skripten}
|
\section{Namensgebung von Funktionen und Skripten}
|
||||||
|
|
||||||
\matlab{} sucht Funktionen und Skripte ausschlie{\ss}lich anhand der
|
\matlab{} sucht Funktionen und Skripte ausschlie{\ss}lich anhand des
|
||||||
Namen. Dabei spielt die Gro{\ss}- und Kleinschreibung eine Rolle. Das
|
Namens. Dabei spielt die Gro{\ss}- und Kleinschreibung eine Rolle. Das
|
||||||
hei{\ss}t, dass die beiden Dateien \file{test\_funktion.m} und
|
hei{\ss}t, dass die beiden Dateien \file{test\_funktion.m} und
|
||||||
\file{Test\_funktion.m} zwei unterschiedliche Funktionen benennen
|
\file{Test\_funktion.m} zwei unterschiedliche Funktionen benennen
|
||||||
k\"onnen. Diese Art der Variation des Namens ist nat\"urlich nicht
|
k\"onnen. Diese Art der Variation des Namens ist nat\"urlich nicht
|
||||||
@ -127,9 +128,10 @@ aus dem Namen ein R\"uckschluss auf den Zweck ziehen lassen sollte.
|
|||||||
die beste Dokumentation.
|
die beste Dokumentation.
|
||||||
\end{important}
|
\end{important}
|
||||||
|
|
||||||
\matlab{} macht keine weiteren Vorgaben, was die Namen
|
In Namen verbietet \matlab{} verbietet Leerzeichen, Sonderzeichen und
|
||||||
angeht. Allerdings folgt die Benennung der vordefinierten Funktionen
|
Umlaute. Namen d\"urfen auch nicht mit Zahlen anfangen. Es mach f\"ur
|
||||||
gewissen Mustern:
|
die Namensgebung selbst keine weiteren Vorgaben. Allerdings folgt die
|
||||||
|
Benennung der in \matlab{} vordefinierten Funktionen gewissen Mustern:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Namen werden immer klein geschrieben.
|
\item Namen werden immer klein geschrieben.
|
||||||
\item Es werden gerne Abk\"urzungen eingesetzt (z.B. \code{xcorr}
|
\item Es werden gerne Abk\"urzungen eingesetzt (z.B. \code{xcorr}
|
||||||
@ -145,8 +147,7 @@ Anf\"ange zusammengesetzter Worte jeweils gro{\ss} geschrieben werden
|
|||||||
oder auch die Verwendung von Unterstrichen zur Trennung von
|
oder auch die Verwendung von Unterstrichen zur Trennung von
|
||||||
Namenskomponenten. Eine Funktion, die die Anzahl von
|
Namenskomponenten. Eine Funktion, die die Anzahl von
|
||||||
Aktionspotentialen bestimmt k\"onnte etwa \file{spikeCount.m} oder
|
Aktionspotentialen bestimmt k\"onnte etwa \file{spikeCount.m} oder
|
||||||
\file{spike\_count.m} benannt werden. Leerzeichen, Sonderzeichen
|
\file{spike\_count.m} benannt werden.
|
||||||
oder Anf\"ange mit Zahlen sind in Namen nicht erlaubt.
|
|
||||||
|
|
||||||
|
|
||||||
\section{Namensgebung von Variablen und Konstanten}
|
\section{Namensgebung von Variablen und Konstanten}
|
||||||
@ -183,9 +184,9 @@ Die Lesbarkeit von Programmen wird sehr durch den Codestil
|
|||||||
beeinflusst. Ein Programm, in dem z.B. Schleifenk\"orper nicht (oder
|
beeinflusst. Ein Programm, in dem z.B. Schleifenk\"orper nicht (oder
|
||||||
zuf\"allig) einger\"uckt sind ist deutlich schwerer zu lesen und zu
|
zuf\"allig) einger\"uckt sind ist deutlich schwerer zu lesen und zu
|
||||||
verstehen, als eines, in dem eine konsistente Einr\"uckung vorgenommen
|
verstehen, als eines, in dem eine konsistente Einr\"uckung vorgenommen
|
||||||
wurde. Mit der Tastenkombination \keycode{Ctrl-I} % XXX Oder wie war das? XXX
|
wurde. Mit der Tastenkombination \keycode{Ctrl-I} (\keycode{Strg-I}
|
||||||
kann ein markierter
|
auf der deutschen Tastatur) kann ein markierter Bereich im \matlab{}
|
||||||
Bereich im \matlab{} Editor automatisch richtig einger\"uckt werden.
|
Editor automatisch richtig einger\"uckt werden.
|
||||||
|
|
||||||
Sparsam und konsistent eingef\"ugte einzelne Leerzeilen sind
|
Sparsam und konsistent eingef\"ugte einzelne Leerzeilen sind
|
||||||
hervorragend geeignet, um logische Abschnitte eines Programm zu
|
hervorragend geeignet, um logische Abschnitte eines Programm zu
|
||||||
@ -220,6 +221,8 @@ end
|
|||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
|
||||||
\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;
|
||||||
max_steps = 1000;
|
max_steps = 1000;
|
||||||
@ -246,10 +249,10 @@ sind kurze Kommentare, die den Zweck und das Ziel eines Abschnitts im
|
|||||||
Programm erl\"autern (z.B. \code{\% compute mean firing rate over all
|
Programm erl\"autern (z.B. \code{\% compute mean firing rate over all
|
||||||
trials}).
|
trials}).
|
||||||
|
|
||||||
Zu viele Kommentare k\"onnen in der Entwicklungsphase eines Programms
|
Viele und h\"aufige Kommentare k\"onnen in der Entwicklungsphase eines
|
||||||
sehr hilfreich sein, bl\"ahen aber den Code auf. Durch die Verwendung
|
Programms sehr hilfreich sein, bl\"ahen aber den Code auf. Durch die
|
||||||
guter Variablen- und Funktionsnamen sollten die meisten Zeilen sowieso
|
Verwendung guter Variablen- und Funktionsnamen sollten die meisten
|
||||||
weitestgehend selbsterkl\"arend sein.
|
Zeilen sowieso weitestgehend selbsterkl\"arend sein.
|
||||||
|
|
||||||
Die beste Dokumentation ist der Code selbst. Gut geschriebener Code
|
Die beste Dokumentation ist der Code selbst. Gut geschriebener Code
|
||||||
mit ausdrucksstarken Variablen- und Funktionsnamen ben\"otigt keine
|
mit ausdrucksstarken Variablen- und Funktionsnamen ben\"otigt keine
|
||||||
@ -317,7 +320,7 @@ Das Auslagern von Funktionalit\"at in eigene Funktionen f\"uhrt
|
|||||||
dazu, dass eine F\"ulle von Dateien erzeugt wird, die die
|
dazu, dass eine F\"ulle von Dateien erzeugt wird, die die
|
||||||
\"Ubersichtlichkeit nicht unbedingt erh\"oht. Wenn die auszulagernde
|
\"Ubersichtlichkeit nicht unbedingt erh\"oht. Wenn die auszulagernde
|
||||||
Funktionalit\"at an vielen Stellen ben\"otigt wird ist es
|
Funktionalit\"at an vielen Stellen ben\"otigt wird ist es
|
||||||
dennoch sinnvol dies zu tun. Wenn nicht, dann bietet \matlab{} die
|
dennoch sinnvoll dies zu tun. Wenn nicht, dann bietet \matlab{} die
|
||||||
M\"oglichkeit sogenannte \codeterm{lokale Funktionen} oder auch
|
M\"oglichkeit sogenannte \codeterm{lokale Funktionen} oder auch
|
||||||
\codeterm{geschachtelte Funktionen} (\enterm{nested functions}) zu
|
\codeterm{geschachtelte Funktionen} (\enterm{nested functions}) zu
|
||||||
erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine
|
erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine
|
||||||
@ -367,7 +370,7 @@ machen Programmiersprachen gibt es Traditionen und \"Ubereink\"unfte,
|
|||||||
diese sollten dann beachtet werden.
|
diese sollten dann beachtet werden.
|
||||||
|
|
||||||
Wiederholte Programmabschnitte sollten in Funktionen ausgelagert
|
Wiederholte Programmabschnitte sollten in Funktionen ausgelagert
|
||||||
werden. Wenn diese nich von globalem Interesse sind, kann mit
|
werden. Wenn diese nicht von globalem Interesse sind, kann mit
|
||||||
\codeterm{lokalen} oder \codeterm{geschachtelten Funktionen} die
|
\codeterm{lokalen} oder \codeterm{geschachtelten Funktionen} die
|
||||||
\"Ubersichtlichkeit erh\"oht werden.
|
\"Ubersichtlichkeit erh\"oht werden.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user