caption fixes and few tiny other changes
This commit is contained in:
parent
de92972722
commit
7e69b31e26
@ -177,7 +177,7 @@ Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
|
|||||||
\begin{minipage}[t]{0.3\columnwidth}
|
\begin{minipage}[t]{0.3\columnwidth}
|
||||||
\includegraphics[width=0.9\textwidth]{property_editor}
|
\includegraphics[width=0.9\textwidth]{property_editor}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\caption{\textbf{Graphisches Interface ``Plot Editor''.} \"Uber das Menu
|
\titlecaption{Graphisches Interface ``Plot Editor''.} {\"Uber das Menu
|
||||||
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
|
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
|
||||||
welches Element des Plots ausgew\"ahlt wurde, ver\"andern sich
|
welches Element des Plots ausgew\"ahlt wurde, ver\"andern sich
|
||||||
die Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
|
die Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
|
||||||
@ -291,12 +291,14 @@ die Farbe und die verschiedenen Marker.
|
|||||||
\subsection{Ver\"andern von Linieneigenschaften}
|
\subsection{Ver\"andern von Linieneigenschaften}
|
||||||
|
|
||||||
Die Eigenschaften des Linienplots k\"onnen \"uber weitere Argumente
|
Die Eigenschaften des Linienplots k\"onnen \"uber weitere Argumente
|
||||||
des \code{plot} Befehls ver\"andert werden. Folgender Aufruf erzeugt
|
des \code{plot} Befehls ver\"andert werden. Folgender Aufruf (Listing
|
||||||
einen roten Linienplot mit gepunkteter Linie der St\"arke 1.5 und
|
\ref{settinglineprops})erzeugt einen roten Linienplot mit gepunkteter
|
||||||
Sternmarkern an den Positionen der Datenpunkte. Zus\"atzlich wird noch
|
Linie der St\"arke 1.5 und Sternmarkern an den Positionen der
|
||||||
die Eigenschaft \codeterm{displayname} gesetzt, um dem Linienplot
|
Datenpunkte. Zus\"atzlich wird noch die Eigenschaft
|
||||||
einen Namen zu geben, der in einer Legende verwendet werden kann.
|
\codeterm{displayname} gesetzt, um dem Linienplot einen Namen zu
|
||||||
\begin{lstlisting}
|
geben, der in einer Legende verwendet werden kann.
|
||||||
|
|
||||||
|
\begin{lstlisting}[label=settinglineprops, caption={Setzen von Linieneigenschaften beim \code{plot} Aufruf}]
|
||||||
x = 0:0.1:2*pi;
|
x = 0:0.1:2*pi;
|
||||||
y = sin(x);
|
y = sin(x);
|
||||||
plot( x, y, 'color', 'r', 'linestyle', ':', 'marker', '*', 'linewidth', 1.5, 'displayname', 'plot 1')
|
plot( x, y, 'color', 'r', 'linestyle', ':', 'marker', '*', 'linewidth', 1.5, 'displayname', 'plot 1')
|
||||||
@ -404,7 +406,7 @@ saveas(gcf, 'spike_detection.pdf', 'pdf')
|
|||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\includegraphics[width=0.5\columnwidth]{spike_detection}
|
\includegraphics[width=0.5\columnwidth]{spike_detection}
|
||||||
\caption{\textbf{Annehmbarer Plot.} Dieser Plot wurde vollst\"andig
|
\titlecaption{Automatisch erstellter Plot.}{Dieser Plot wurde vollst\"andig
|
||||||
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
|
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
|
||||||
gespeichert.}\label{spikedetectionfig}
|
gespeichert.}\label{spikedetectionfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
@ -38,9 +38,9 @@ befassen.
|
|||||||
|
|
||||||
\subsection{Erzeugen von Variablen}
|
\subsection{Erzeugen von Variablen}
|
||||||
In \matlab{} kann eine Variable auf der Kommandozeile, in einem Skript
|
In \matlab{} kann eine Variable auf der Kommandozeile, in einem Skript
|
||||||
oder einer Funktion an beliebiger Stelle erzeugen. Das folgende
|
oder einer Funktion an beliebiger Stelle erzeugt werden. Listing
|
||||||
Listing zeigt zwei M\"oglichkeiten:
|
\ref{VarListing1} zeigt zwei M\"oglichkeiten dies zu tun:
|
||||||
\begin{lstlisting}[label=varListing1, caption=Erzeugen von Variablen]
|
\begin{lstlisting}[label=varListing1, caption=Erzeugen von Variablen.]
|
||||||
>> y = []
|
>> y = []
|
||||||
y =
|
y =
|
||||||
[]
|
[]
|
||||||
@ -51,11 +51,11 @@ Listing zeigt zwei M\"oglichkeiten:
|
|||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Die Zeile 1 kann etwa so gelesen werden:''Erzeuge eine Variable mit
|
Die Zeile 1 kann etwa so gelesen werden:''Erzeuge eine Variable mit
|
||||||
dem Namen y und weise ihr einen leeren Wert zu.'' Das
|
dem Namen y und weise ihr einen leeren Wert zu''. Das
|
||||||
Gleichheitszeichen ist der sogenannte
|
Gleichheitszeichen ist der sogenannte
|
||||||
\codeterm{Zuweisungsoperator}. Zeile 5 definiert eine Variable x, der
|
\codeterm{Zuweisungsoperator}. Zeile 5 definiert eine Variable x, der
|
||||||
nun der Zahlenwert 38 zugewiesen wird. Da \matlab{}, wenn nicht anders
|
nun der Zahlenwert 38 zugewiesen wird. Da \matlab{}, wenn nicht anders
|
||||||
angegeben immer den ``double'' Datentypen benutzt, haben beide
|
angegeben, immer den ``double'' Datentypen benutzt, haben beide
|
||||||
Variablen diesen Datentyp.
|
Variablen diesen Datentyp.
|
||||||
|
|
||||||
\begin{lstlisting}[label=varListing2, caption={Erfragen des Datentyps einer Variable, Listen aller definierten Variablen.}]
|
\begin{lstlisting}[label=varListing2, caption={Erfragen des Datentyps einer Variable, Listen aller definierten Variablen.}]
|
||||||
@ -65,18 +65,19 @@ Variablen diesen Datentyp.
|
|||||||
>> who % oder whos um mehr Information zu bekommen
|
>> who % oder whos um mehr Information zu bekommen
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Bei der Namensgebung ist zu beachten, dass \matlab{} auf Gro{\ss}- und
|
\begin{important}
|
||||||
Kleinschreibung achtet und ein Variablennane mit einem alphabethischen
|
Bei der Namensgebung ist zu beachten, dass \matlab{} auf Gro{\ss}-
|
||||||
Zeichen beginnen muss. Des Weiteren sind Umlaute, Sonder- und
|
und Kleinschreibung achtet und ein Variablennane mit einem
|
||||||
Leerzeichen in Variablennamen nicht erlaubt.
|
alphabetischen Zeichen beginnen muss. Des Weiteren sind Umlaute,
|
||||||
|
Sonder- und Leerzeichen in Variablennamen nicht erlaubt.
|
||||||
|
\end{important}
|
||||||
|
|
||||||
\subsection{Arbeiten mit Variablen}
|
\subsection{Arbeiten mit Variablen}
|
||||||
|
|
||||||
Nat\"urlich kann mit den Variablen auch gearbeitet, bzw gerechnet
|
Nat\"urlich kann mit den Variablen auch gearbeitet, bzw. gerechnet
|
||||||
werden. \matlab{} kennt alle normalen arithmetischen Operatoren wie
|
werden. \matlab{} kennt alle normalen arithmetischen Operatoren wie
|
||||||
\code{+}, \code{-}, \code{*} und \code{/}. Die Potenz wird \"uber das
|
\code{+}, \code{-}, \code{*} und \code{/}. Die Potenz wird \"uber das
|
||||||
Dachsymbol \code{\^} dargestellt. Das folgende Listing zeigt, wie sie
|
Dachsymbol \code{\^} dargestellt. Listing \ref{varListing3} zeigt, wie sie
|
||||||
benutzt werden.
|
benutzt werden.
|
||||||
|
|
||||||
\begin{lstlisting}[label=varListing3, caption={Rechnen mit Variablen.}]
|
\begin{lstlisting}[label=varListing3, caption={Rechnen mit Variablen.}]
|
||||||
@ -107,20 +108,20 @@ benutzt werden.
|
|||||||
>> clear z
|
>> clear z
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Beachtenswert ist z.B. in Zeilen 3 und 6, dass wir mit dem Inhalt
|
Beachtenswert ist z.B. in Zeilen 3 und 6, dass mit dem Inhalt einer
|
||||||
einer Variablen rechnen k\"onnen, ohne dass dadurch ihr Wert
|
Variablen gerechnet werden kann, ohne dass dadurch ihr Wert
|
||||||
ver\"andert wird. Wenn der Wert einer Variablen ver\"andert werden
|
ver\"andert wird. Wenn der Wert einer Variablen ver\"andert werden
|
||||||
soll, dann muss dieser der Variable explizit zugewiesen werden (mit
|
soll, dann muss der Variable der neue Wert explizit zugewiesen werden
|
||||||
dem \code{=} Zuweisungsoperator, z.B. Zeilen 16, 20). Zeile 25 zeigt
|
(mit dem \code{=} Zuweisungsoperator, z.B. Zeilen 16, 20). Zeile 25
|
||||||
wie eine einzelne Variable gel\"oscht wird.
|
zeigt wie eine einzelne Variable gel\"oscht wird.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Datentypen}
|
\subsection{Datentypen}
|
||||||
|
|
||||||
Der Datentyp bestimmt, wie die im Speicher abgelegten Bitmuster
|
Der Datentyp bestimmt, wie die im Speicher abgelegten Bitmuster
|
||||||
interpretiert werden. Die wichtigsten Datentpyen sind folgende:
|
interpretiert werden. Die wichtigsten Datentpyen sind:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \codetterm{integer} - Ganze Zahlen. Hier gibt es mehrere
|
\item \codeterm{integer} - Ganze Zahlen. Hier gibt es mehrere
|
||||||
Unterarten, die wir in \matlab{} (meist) ignorieren k\"onnen.
|
Unterarten, die wir in \matlab{} (meist) ignorieren k\"onnen.
|
||||||
\item \codeterm{double} - Flie{\ss}kommazahlen. Im Gegensatz zu den reelen Zahlen, die durch diesen Datentyp dargestellt werden, sind sie abz\"ahlbar.
|
\item \codeterm{double} - Flie{\ss}kommazahlen. Im Gegensatz zu den reelen Zahlen, die durch diesen Datentyp dargestellt werden, sind sie abz\"ahlbar.
|
||||||
\item \codeterm{complex} - Komplexe Zahlen.
|
\item \codeterm{complex} - Komplexe Zahlen.
|
||||||
@ -133,7 +134,7 @@ unterschiedlichem Speicherbedarf und Wertebreich.
|
|||||||
|
|
||||||
\begin{table}[!h]
|
\begin{table}[!h]
|
||||||
\centering
|
\centering
|
||||||
\titlecaption{Grundlegende Datentypen und ihr Wertebereich.}{}
|
\titlecaption{Grundlegende numerische Datentypen und ihr Wertebereich.}{}
|
||||||
\label{dtypestab}
|
\label{dtypestab}
|
||||||
\begin{tabular}{llcl}\hline
|
\begin{tabular}{llcl}\hline
|
||||||
Datentyp & Speicherbedarf & Wertebereich & Beispiel \rule{0pt}{2.5ex} \\ \hline
|
Datentyp & Speicherbedarf & Wertebereich & Beispiel \rule{0pt}{2.5ex} \\ \hline
|
||||||
@ -178,40 +179,39 @@ den Datentypen auseinanderzusetzen (Box \ref{daqbox}).
|
|||||||
Daten als ``echte'' Spannungen, also als Flie{\ss}kommawerte,
|
Daten als ``echte'' Spannungen, also als Flie{\ss}kommawerte,
|
||||||
abzulegen ben\"otigt den 4-fachen Speicherplatz (8 statt 2 Bytes)
|
abzulegen ben\"otigt den 4-fachen Speicherplatz (8 statt 2 Bytes)
|
||||||
und bietet keine zus\"atzliche Information.
|
und bietet keine zus\"atzliche Information.
|
||||||
|
|
||||||
\end{ibox}
|
\end{ibox}
|
||||||
|
|
||||||
|
|
||||||
\section{Vektoren und Matrizen}
|
\section{Vektoren und Matrizen}
|
||||||
|
|
||||||
Vektoren und Matrizen sind die wichtigsten Datenstrukturen in
|
Vektoren und Matrizen sind die wichtigsten Datenstrukturen in
|
||||||
\matlab{}. In anderen Programmiersprachen heissen sie ein-
|
\matlab{}. In anderen Programmiersprachen hei{\ss}en sie ein-
|
||||||
bzw. mehrdimensionalen Felder. Felder sind Datenstrukturen, die
|
bzw. mehrdimensionalen Felder. Felder sind Datenstrukturen, die
|
||||||
mehrere Werte des geleichen Datentyps in einer Variablen vereinen. Da
|
mehrere Werte des gleichen Datentyps in einer Variablen vereinen. Da
|
||||||
\matlab{} seinen Ursprung in der Verarbeitung von mathematischen
|
\matlab{} seinen Ursprung in der Verarbeitung von mathematischen
|
||||||
Vektoren und Matrizen hat, werden sie hier auch so genannt. \matlab{}
|
Vektoren und Matrizen hat, werden sie hier auch so genannt. Dabei
|
||||||
macht keinen Unterschied zwischen Vektoren und Matrizen. Vektoren
|
macht \matlab{} intern keinen Unterschied zwischen Vektoren und
|
||||||
sind 2--dimensionale Matrizen bei denen eine Dimension die Gr\"o{\ss}e
|
Matrizen. Vektoren sind 2--dimensionale Matrizen, bei denen eine
|
||||||
1 hat.
|
Dimension die Gr\"o{\ss}e 1 hat.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Vektoren}
|
\subsection{Vektoren}
|
||||||
|
|
||||||
Im Gegensatz zu Variablen, die einzelene Werte beinhalten
|
Im Gegensatz zu Variablen, die einzelene Werte beinhalten
|
||||||
(Skalare), kann ein Vektor mehrere Werte des gleichen Datentyps
|
(Skalare), kann ein Vektor mehrere Werte des gleichen Datentyps
|
||||||
beinhalten (Abbildung \ref{vectorfig} B). Die Variable ``test''
|
beinhalten (Abbildung \ref{vectorfig} B). Die Variable \code{a}
|
||||||
enth\"alt in diesem Beispiel vier ganzzahlige Werte.
|
enth\"alt im Beispiel in Abbildung \ref{vectorfig} vier ganzzahlige Werte.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\includegraphics[width=0.8\columnwidth]{scalarArray}
|
\includegraphics[width=0.8\columnwidth]{scalarArray}
|
||||||
\titlecaption{Skalare und Vektoren.}{\textbf{A)} Eine skalare Variable kann
|
\titlecaption{Skalare und Vektoren.}{\textbf{A)} Eine skalare Variable kann
|
||||||
genau einen Wert tragen. \textbf{B)} Ein Vektor kann mehrer
|
genau einen Wert tragen. \textbf{B)} Ein Vektor kann mehrer
|
||||||
Werte des gleichen Datentyps (z.B. ganzzahlige Integer Werte)
|
Werte des gleichen Datentyps (z.B. ganzzahlige Integer Werte)
|
||||||
beinhalten. \matlab{} kennt den Zeilen- (row-) und Spaltenvektor
|
beinhalten. \matlab{} kennt den Zeilen- (row-) und Spaltenvektoren
|
||||||
(columnvector).}\label{vectorfig}
|
(columnvector).}\label{vectorfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Das folgende Listing zeigt, wie einfache Vektoren erstellt werden
|
Das folgende Listing \ref{arrayListing1} zeigt, wie einfache Vektoren erstellt werden
|
||||||
k\"onnen.
|
k\"onnen.
|
||||||
|
|
||||||
\begin{lstlisting}[label=arrayListing1, caption={Erstellen einfacher Zeilenvektoren.}]
|
\begin{lstlisting}[label=arrayListing1, caption={Erstellen einfacher Zeilenvektoren.}]
|
||||||
@ -228,9 +228,10 @@ k\"onnen.
|
|||||||
0 2 4 6 8 10
|
0 2 4 6 8 10
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Die L\"ange eines Vektors, d.h. die Anzahl der Elemente des Vektors,
|
Die L\"ange eines Vektors, d.h. die Anzahl der Elemente des Vektors,
|
||||||
kann mithilfe der Funktion \code{length()} bestimmt werden. \"Ahnliche
|
kann mithilfe der Funktionen \code{length()} und \code{numel} bestimmt
|
||||||
Information kann \"uber die Funktion \code{size()} erhalten werden. Im
|
werden. \"Ahnliche Information kann \"uber die Funktion \code{size()}
|
||||||
Falle des Vektors \code{a} von oben erh\"alt man folgende Ausgabe:
|
erhalten werden (Listing \ref{arrayListing2}). Im Falle des Vektors
|
||||||
|
\code{a} von oben erh\"alt man folgende Ausgabe:
|
||||||
|
|
||||||
\begin{lstlisting}[label=arrayListing2, caption={Gr\"o{\ss}e von Vektoren.}]
|
\begin{lstlisting}[label=arrayListing2, caption={Gr\"o{\ss}e von Vektoren.}]
|
||||||
>> length(a)
|
>> length(a)
|
||||||
@ -243,7 +244,9 @@ Falle des Vektors \code{a} von oben erh\"alt man folgende Ausgabe:
|
|||||||
|
|
||||||
Diese Ausgabe zeigt, dass Vektoren im Grunde 2-dimensional sind. Bei
|
Diese Ausgabe zeigt, dass Vektoren im Grunde 2-dimensional sind. Bei
|
||||||
einem Zeilenvektor hat die erste Dimension die Gr\"o{\ss}e
|
einem Zeilenvektor hat die erste Dimension die Gr\"o{\ss}e
|
||||||
1. \code{length(a)} gibt die l\"angste Ausdehnung an.
|
1. \code{length(a)} gibt die l\"angste Ausdehnung an. Der \code{'}-
|
||||||
|
Operator transponiert den Spaltenvektor zu einem Zeilenvektor (Zeilen 14 ff.).
|
||||||
|
|
||||||
|
|
||||||
\begin{lstlisting}[label=arrayListing3, caption={Spaltenvektoren.}]
|
\begin{lstlisting}[label=arrayListing3, caption={Spaltenvektoren.}]
|
||||||
>> b = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10] % Erstellen eines Spaltenvektors
|
>> b = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10] % Erstellen eines Spaltenvektors
|
||||||
@ -265,8 +268,6 @@ einem Zeilenvektor hat die erste Dimension die Gr\"o{\ss}e
|
|||||||
1 10
|
1 10
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Der \code{'}- Operator transponiert den Spaltenvektor zu einem
|
|
||||||
Zeilenvektor.
|
|
||||||
|
|
||||||
\subsubsection{Zugriff auf Inhalte von Vektoren}
|
\subsubsection{Zugriff auf Inhalte von Vektoren}
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
@ -282,8 +283,9 @@ einen fortlaufenden \codeterm{Index}, \"uber den auf die Werte des
|
|||||||
Vektors zugegriffen werden kann. Dabei spielt es keine Rolle, ob es
|
Vektors zugegriffen werden kann. Dabei spielt es keine Rolle, ob es
|
||||||
sich um einen Zeilen- oder Spaltenvektor handelt.
|
sich um einen Zeilen- oder Spaltenvektor handelt.
|
||||||
\begin{important}
|
\begin{important}
|
||||||
Anders als viele andere Sprachen beginnt \matlab{} mit dem Index
|
Anders als viele andere Sprachen beginnt \matlab{} mit dem Index
|
||||||
1.
|
1. Der Zugriff auf Inhalte eines Vektors mittels seines Indexes wird
|
||||||
|
Indizieren genannnt.
|
||||||
\end{important}
|
\end{important}
|
||||||
Die Listings \ref{arrayListing4} und \ref{arrayListing5} zeigen wie
|
Die Listings \ref{arrayListing4} und \ref{arrayListing5} zeigen wie
|
||||||
mit Indexen auf die Inhalte eines Vektors zugegriffen werden kann.
|
mit Indexen auf die Inhalte eines Vektors zugegriffen werden kann.
|
||||||
@ -312,9 +314,12 @@ Element gleichzeitig zuzugreifen.
|
|||||||
>> a(2:4) % alle Elemente von Index 2 bis einschliesslich 4
|
>> a(2:4) % alle Elemente von Index 2 bis einschliesslich 4
|
||||||
ans =
|
ans =
|
||||||
12 13 14
|
12 13 14
|
||||||
>> a(1:2:end) %jedes zweite Element
|
>> a(1:2:end) % jedes zweite Element
|
||||||
ans =
|
ans =
|
||||||
11 13 15 17 19
|
11 13 15 17 19
|
||||||
|
>> a(:) % alle Elemente
|
||||||
|
ans =
|
||||||
|
11 12 13 14 15 16 17 18 19 20
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\begin{exercise}{vectorsize.m}{vectorsize.out}
|
\begin{exercise}{vectorsize.m}{vectorsize.out}
|
||||||
@ -338,7 +343,7 @@ Mit Vektoren kann sehr einfach gerechnet werden. Listing
|
|||||||
ans =
|
ans =
|
||||||
-5 -3 -1 1 3
|
-5 -3 -1 1 3
|
||||||
|
|
||||||
>> a .* 2 % Multiplication
|
>> a .* 2 % Multiplikation
|
||||||
ans =
|
ans =
|
||||||
0 4 8 12 16
|
0 4 8 12 16
|
||||||
|
|
||||||
@ -363,12 +368,12 @@ Verarbeitung handeln soll. F\"ur diese elementweisen Operationen kennt
|
|||||||
\matlab{} die Operatoren \code{.*}, \code{./} und \code{.\^}. Die
|
\matlab{} die Operatoren \code{.*}, \code{./} und \code{.\^}. Die
|
||||||
einfachen Operatoren \code{*}, \code{/} und \code{\^} sind mit den
|
einfachen Operatoren \code{*}, \code{/} und \code{\^} sind mit den
|
||||||
entsprechenden Matrixoperationen aus der linearen Algebrar belegt
|
entsprechenden Matrixoperationen aus der linearen Algebrar belegt
|
||||||
(s.u.).
|
(Box \ref{matrixmultiplication}).
|
||||||
|
|
||||||
Zu Beachten ist des Weiteren noch die Fehlermeldung am Schluss von
|
Zu Beachten ist des Weiteren noch die Fehlermeldung am Schluss von
|
||||||
Listing \ref{arrayListing6}. Wenn zwei Vektoren (elementweise)
|
Listing \ref{arrayListing6}. Wenn zwei Vektoren (elementweise)
|
||||||
miteinander verrechnet werden sollen, muss nicht nur die Anzahl der Elemente
|
miteinander verrechnet werden sollen, muss nicht nur die Anzahl der Elemente
|
||||||
übereinstimmen, sondern es muss auch das Layout (Zeilen- oder
|
\"ubereinstimmen, sondern es muss auch das Layout (Zeilen- oder
|
||||||
Spaltenvektoren) \"ubereinstimmen.
|
Spaltenvektoren) \"ubereinstimmen.
|
||||||
|
|
||||||
|
|
||||||
@ -396,9 +401,8 @@ Neben dem L\"oschen von Vektorinhalten k\"onnen Vektoren auch
|
|||||||
erweitert oder zusammengesetzt werden. Auch hier muss das Layout der Vektoren
|
erweitert oder zusammengesetzt werden. Auch hier muss das Layout der Vektoren
|
||||||
\"ubereinstimmen (Listing \ref{arrayListing8}, Zeile 12). Will man
|
\"ubereinstimmen (Listing \ref{arrayListing8}, Zeile 12). Will man
|
||||||
einen Vektor erweitern, kann man \"uber das Ende hinaus
|
einen Vektor erweitern, kann man \"uber das Ende hinaus
|
||||||
zuweisen. \matlab{} erweitert dann die Variable. Auch hierbei muss auf
|
zuweisen. \matlab{} erweitert dann die Variable. Dieser Vorgang ist
|
||||||
das Layout geachtet werden. Zudem ist dieser Vorgang
|
``rechenintensiv'' und sollte, soweit m\"oglich, vermieden werden.
|
||||||
``rechenintensiv'' und sollte soweit m\"oglich vermieden werden.
|
|
||||||
|
|
||||||
\begin{lstlisting}[caption={Zusammenf\"ugen und Erweitern von Vektoren.}, label=arrayListing8]
|
\begin{lstlisting}[caption={Zusammenf\"ugen und Erweitern von Vektoren.}, label=arrayListing8]
|
||||||
>> a = (0:2:8);
|
>> a = (0:2:8);
|
||||||
@ -417,6 +421,7 @@ das Layout geachtet werden. Zudem ist dieser Vorgang
|
|||||||
Dimensions of matrices being concatenated are not consistent.
|
Dimensions of matrices being concatenated are not consistent.
|
||||||
|
|
||||||
>> b(6:8) = [1 2 3 4];
|
>> b(6:8) = [1 2 3 4];
|
||||||
|
In an assignment A(:) = B, the number of elements in A and B must be the same.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
|
||||||
@ -490,10 +495,10 @@ Der Zugriff auf Inhalte von Matrizen erfolgt \"uber den Index
|
|||||||
Koordinatensystem wird jede Zelle einer Matrize mit einem Index
|
Koordinatensystem wird jede Zelle einer Matrize mit einem Index
|
||||||
angesprochen, der aus $n$ Zahlen besteht wobei $n$ die
|
angesprochen, der aus $n$ Zahlen besteht wobei $n$ die
|
||||||
Dimensionalit\"at der Matrize ist. Diese Art des Zugriffs wird
|
Dimensionalit\"at der Matrize ist. Diese Art des Zugriffs wird
|
||||||
\codeterm{subsript indexing} genannt.
|
\codeterm{subscript indexing} genannt.
|
||||||
|
|
||||||
\begin{lstlisting}[caption={Zugriff auf Inhalte von Matrizen,
|
\begin{lstlisting}[caption={Zugriff auf Inhalte von Matrizen,
|
||||||
Indexierung.}, label=matrixIndexing]
|
Indizierung.}, label=matrixIndexing]
|
||||||
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||||
>> size(x)
|
>> size(x)
|
||||||
ans =
|
ans =
|
||||||
@ -522,18 +527,18 @@ so intuitiv verst\"andlich, kann aber sehr hilfreich sein. Der
|
|||||||
``linare'' Index einer Zelle reicht von 1 bis \code{numel(M)}
|
``linare'' Index einer Zelle reicht von 1 bis \code{numel(M)}
|
||||||
Elemente. Wobei dieser erst entlang der 1. Dimension, dann der 2.,
|
Elemente. Wobei dieser erst entlang der 1. Dimension, dann der 2.,
|
||||||
3. etc. Dimension ansteigt. Listing \ref{matrixLinearIndexing} zeigt
|
3. etc. Dimension ansteigt. Listing \ref{matrixLinearIndexing} zeigt
|
||||||
ein Beispiel f\"ur den Einsatz des linearen Indexierens z.B. wenn man
|
ein Beispiel f\"ur den Einsatz des linearen Indizierens z.B. wenn man
|
||||||
den Minimalwert aller Elemente einer Matrize ermitteln m\"ochte.
|
den Minimalwert aller Elemente einer Matrize ermitteln m\"ochte.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\includegraphics[width=0.9\columnwidth]{matrixLinearIndexing}
|
\includegraphics[width=0.9\columnwidth]{matrixLinearIndexing}
|
||||||
\titlecaption{Lineares Indexieren von Matrizen.}{Der Index steigt
|
\titlecaption{Lineares Indizieren von Matrizen.}{Der Index steigt
|
||||||
linear von 1 bis zur Anzahl Elemente in der Matrize an. Dabei
|
linear von 1 bis zur Anzahl Elemente in der Matrize an. Dabei
|
||||||
steigt der Index zuerst entlang der ersten, zweiten, dritten und
|
steigt der Index zuerst entlang der ersten, zweiten, dritten und
|
||||||
weiterer Dimensionen an.}\label{matrixlinearindexingfig}
|
weiterer Dimensionen an.}\label{matrixlinearindexingfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{lstlisting}[label=matrixLinearIndexing, caption={Lineares Indexieren in Matrizen.}]
|
\begin{lstlisting}[label=matrixLinearIndexing, caption={Lineares Indizieren in Matrizen.}]
|
||||||
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||||
>> size(x)
|
>> size(x)
|
||||||
ans =
|
ans =
|
||||||
@ -552,14 +557,14 @@ den Minimalwert aller Elemente einer Matrize ermitteln m\"ochte.
|
|||||||
|
|
||||||
Beim Rechnen mit Matrizen gelten die gleichen Regeln wie bei
|
Beim Rechnen mit Matrizen gelten die gleichen Regeln wie bei
|
||||||
Vektoren. Matrizen k\"onnen solange elementweise miteinander
|
Vektoren. Matrizen k\"onnen solange elementweise miteinander
|
||||||
Verrechnet werden, wie die Dimensionalit\"aten
|
verrechnet werden, wie die Dimensionalit\"aten
|
||||||
\"ubereinstimmen. Besondere Vorsicht sollte man immer dann walten
|
\"ubereinstimmen. Besondere Vorsicht sollte man immer dann walten
|
||||||
lassen, wenn man Matrizen miteinander mulitplizieren, dividieren oder
|
lassen, wenn man Matrizen miteinander multiplizieren, dividieren oder
|
||||||
potenzieren will. Hier ist es wichtig sich klarzumachen was man will:
|
potenzieren will. Hier ist es wichtig sich klarzumachen was man will:
|
||||||
Eine elementweise Multiplikation (\code{.*} Operator, Listing
|
Eine elementweise Multiplikation (\code{.*} Operator, Listing
|
||||||
\ref{matrixOperations} Zeile 18) oder ob eine Matrixmultiplikation
|
\ref{matrixOperations} Zeile 18) oder ob eine Matrixmultiplikation
|
||||||
(\code{*} Operator, Listing \ref{matrixOperations} Zeile 12)
|
(\code{*} Operator, Listing \ref{matrixOperations} Zeile 12, Box
|
||||||
durchgef\"uhrt werden soll.
|
\ref{matrixmultiplication}) durchgef\"uhrt werden soll.
|
||||||
|
|
||||||
\begin{lstlisting}[label=matrixOperations, caption={Zwei Arten von Multiplikationen auf Matrizen.}]
|
\begin{lstlisting}[label=matrixOperations, caption={Zwei Arten von Multiplikationen auf Matrizen.}]
|
||||||
>> A = randi(10, [3, 3]) % 2-D Matrix
|
>> A = randi(10, [3, 3]) % 2-D Matrix
|
||||||
@ -583,10 +588,13 @@ durchgef\"uhrt werden soll.
|
|||||||
ans =
|
ans =
|
||||||
6 8 14
|
6 8 14
|
||||||
2 50 27
|
2 50 27
|
||||||
50 70 5
|
50 70 5
|
||||||
>>
|
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\begin{ibox}[t]{\label{matrixmultilication} Matrixmultiplikation.}
|
||||||
|
|
||||||
|
\end{ibox}
|
||||||
|
|
||||||
\section{Boolesche Operationen}
|
\section{Boolesche Operationen}
|
||||||
|
|
||||||
Boolesche Ausdr\"ucke sind Anweisungen, die zu \codeterm{wahr} oder
|
Boolesche Ausdr\"ucke sind Anweisungen, die zu \codeterm{wahr} oder
|
||||||
|
@ -11,7 +11,7 @@ ein Optimierungsproblem, der als Kurvenfit bekannt ist
|
|||||||
|
|
||||||
\begin{figure}[t]
|
\begin{figure}[t]
|
||||||
\includegraphics[width=1\textwidth]{lin_regress}\hfill
|
\includegraphics[width=1\textwidth]{lin_regress}\hfill
|
||||||
\titlecaption{.}{F\"ur eine Reihe von Eingangswerten $x$,
|
\titlecaption{Parameter der linearen Geradengleichung.}{F\"ur eine Reihe von Eingangswerten $x$,
|
||||||
z.B. Stimulusintensit\"aten, wurden die Antworten $y$ eines
|
z.B. Stimulusintensit\"aten, wurden die Antworten $y$ eines
|
||||||
Systems gemessen (links). Der postulierte lineare Zusammenhang hat
|
Systems gemessen (links). Der postulierte lineare Zusammenhang hat
|
||||||
als freie Parameter die Steigung (mitte) und den
|
als freie Parameter die Steigung (mitte) und den
|
||||||
@ -169,7 +169,7 @@ beiden Parameter und auf der $z$-Achse der Fehlerwert aufgetragen
|
|||||||
|
|
||||||
\begin{figure}[t]
|
\begin{figure}[t]
|
||||||
\includegraphics[width=0.75\columnwidth]{error_surface.pdf}
|
\includegraphics[width=0.75\columnwidth]{error_surface.pdf}
|
||||||
\caption{\textbf{Fehlerfl\"ache.} Die beiden freien Parameter
|
\titlecaption{Fehlerfl\"ache.}{Die beiden freien Parameter
|
||||||
unseres Modells $m$ und $b$ spannen die Grundfl\"ache des Plots
|
unseres Modells $m$ und $b$ spannen die Grundfl\"ache des Plots
|
||||||
auf. F\"ur jede Kombination von Steigung $m$ und
|
auf. F\"ur jede Kombination von Steigung $m$ und
|
||||||
$y$-Achsenabschnitt $b$ wird die errechnete Vorhersage des Modells
|
$y$-Achsenabschnitt $b$ wird die errechnete Vorhersage des Modells
|
||||||
@ -358,7 +358,7 @@ Punkte in Abbildung \ref{gradientdescentfig} gro{\ss}.
|
|||||||
|
|
||||||
\begin{figure}[t]
|
\begin{figure}[t]
|
||||||
\includegraphics[width=0.6\columnwidth]{gradient_descent}
|
\includegraphics[width=0.6\columnwidth]{gradient_descent}
|
||||||
\caption{\textbf{Gradientenabstieg.} Es wird von einer beliebigen
|
\titlecaption{Gradientenabstieg.} {Es wird von einer beliebigen
|
||||||
Position aus gestartet und der Gradient berechnet und die Position
|
Position aus gestartet und der Gradient berechnet und die Position
|
||||||
ver\"andert. Jeder Punkt zeigt die Position nach jedem
|
ver\"andert. Jeder Punkt zeigt die Position nach jedem
|
||||||
Optimierungsschritt an.} \label{gradientdescentfig}
|
Optimierungsschritt an.} \label{gradientdescentfig}
|
||||||
|
Reference in New Issue
Block a user