Improved indices. Added optional parameter for index to *term* macros.
This commit is contained in:
@@ -199,7 +199,7 @@ Dimension die Gr\"o{\ss}e 1 hat.
|
||||
|
||||
Im Gegensatz zu Variablen, die einzelene Werte beinhalten
|
||||
(Skalare), kann ein Vektor mehrere Werte des gleichen Datentyps
|
||||
beinhalten (Abbildung \ref{vectorfig} B). Die Variable \code{a}
|
||||
beinhalten (Abbildung \ref{vectorfig} B). Die Variable \varcode{a}
|
||||
enth\"alt im Beispiel in Abbildung \ref{vectorfig} vier ganzzahlige Werte.
|
||||
|
||||
\begin{figure}
|
||||
@@ -228,10 +228,10 @@ k\"onnen.
|
||||
0 2 4 6 8 10
|
||||
\end{lstlisting}
|
||||
Die L\"ange eines Vektors, d.h. die Anzahl der Elemente des Vektors,
|
||||
kann mithilfe der Funktionen \code{length()} und \code{numel} bestimmt
|
||||
kann mithilfe der Funktionen \code{length()} und \code{numel()} bestimmt
|
||||
werden. \"Ahnliche Information kann \"uber die Funktion \code{size()}
|
||||
erhalten werden (Listing \ref{arrayListing2}). Im Falle des Vektors
|
||||
\code{a} von oben erh\"alt man folgende Ausgabe:
|
||||
\varcode{a} von oben erh\"alt man folgende Ausgabe:
|
||||
|
||||
\begin{lstlisting}[label=arrayListing2, caption={Gr\"o{\ss}e von Vektoren.}]
|
||||
>> length(a)
|
||||
@@ -244,7 +244,7 @@ erhalten werden (Listing \ref{arrayListing2}). Im Falle des Vektors
|
||||
|
||||
Diese Ausgabe zeigt, dass Vektoren im Grunde 2-dimensional sind. Bei
|
||||
einem Zeilenvektor hat die erste Dimension die Gr\"o{\ss}e
|
||||
1. \code{length(a)} gibt die l\"angste Ausdehnung an. Der \code{'}-
|
||||
1. \code[length()]{length(a)} gibt die l\"angste Ausdehnung an. Der \code{'}-
|
||||
Operator transponiert den Spaltenvektor zu einem Zeilenvektor (Zeilen 14 ff.).
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ Element gleichzeitig zuzugreifen.
|
||||
\end{lstlisting}
|
||||
|
||||
\begin{exercise}{vectorsize.m}{vectorsize.out}
|
||||
Der R\"uckgabewert von \code{size(a)} ist wieder ein Vektor der
|
||||
Der R\"uckgabewert von \code[size()]{size(a)} ist wieder ein Vektor der
|
||||
L\"ange 2. Wie k\"onnte man also die Gr\"o{\ss}e von \varcode{a} in der
|
||||
zweiten Dimension herausfinden?
|
||||
\end{exercise}
|
||||
@@ -470,14 +470,14 @@ einzelnen Zeilen der Matrize.
|
||||
Zur Defintion von mehr-dimensionalen Matrizen ist die Notation in
|
||||
Zeile 1 nicht geeignet. Es gibt allerdings eine Reihe von
|
||||
Helferfunktionen, die n-dimensionale Matrizen erstellen k\"onnen
|
||||
(z.B. \code{ones}, Zeile 7). Sollte sich die Notwendigkeit ergeben
|
||||
mehrdimensionale Matrizen zusammenzuf\"ugen hilft die \code{cat}
|
||||
(z.B. \code{ones()}, Zeile 7). Sollte sich die Notwendigkeit ergeben
|
||||
mehrdimensionale Matrizen zusammenzuf\"ugen hilft die \code{cat()}
|
||||
Funktion.
|
||||
|
||||
Um Informationen \"uber die Gr\"o{\ss}e einer Matrize zu bekommen ist
|
||||
die Funktion \code{length} nicht geeignet. Wie oben erw\"ahnt gibt sie
|
||||
die Funktion \code{length()} nicht geeignet. Wie oben erw\"ahnt gibt sie
|
||||
die Gr\"o{\ss}e der l\"angsten Dimension aus. Wann immer es um
|
||||
Matrizen geht, wird \code{size} benutzt.
|
||||
Matrizen geht, wird \code{size()} benutzt.
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{matrixIndexing}
|
||||
@@ -524,7 +524,7 @@ Alternativ zum \codeterm{subscript indexing} k\"onnen die Zellen einer
|
||||
Matrize auch \emph{linear} angesprochen werden (Abbildung
|
||||
\ref{matrixlinearindexingfig}). Diese Art der Adressierung ist nicht
|
||||
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()]{numel(M)}
|
||||
Elemente. Wobei dieser erst entlang der 1. Dimension, dann der 2.,
|
||||
3. etc. Dimension ansteigt. Listing \ref{matrixLinearIndexing} zeigt
|
||||
ein Beispiel f\"ur den Einsatz des linearen Indizierens z.B. wenn man
|
||||
@@ -682,7 +682,7 @@ zu wahr oder falsch ausgewertet werden wird. Wenn zwei Aussagen mit
|
||||
einem UND verkn\"upft werden und der erste zu falsch ausgewertet wird,
|
||||
muss der zweite gar nicht mehr gepr\"uft werden. Die Verwendung der
|
||||
``short-circuit'' Versionen spart Rechenzeit. Das auschlie{\ss}ende ODER
|
||||
(XOR) ist in \matlab{} nur als Funktion \code{xor(A, B)} verf\"ugbar.
|
||||
(XOR) ist in \matlab{} nur als Funktion \code[xor()]{xor(A, B)} verf\"ugbar.
|
||||
|
||||
\begin{table}[th]
|
||||
\titlecaption{\label{logicaloperators}
|
||||
@@ -935,7 +935,7 @@ end
|
||||
\begin{exercise}{facultyLoop.m}{facultyLoop.out}
|
||||
Wie k\"onnte Fakult\"at mit einer Schleife implementiert werden?
|
||||
Implementiere eine \code{for} Schleife, die die Fakul\"at von einer
|
||||
Zahl \code{n} berechnet.
|
||||
Zahl \varcode{n} berechnet.
|
||||
\end{exercise}
|
||||
|
||||
|
||||
@@ -1254,18 +1254,18 @@ hei{\ss}en soll, (ii) welche Information sie ben\"otigt und (iii)
|
||||
welche Daten sie zur\"uckliefern soll.
|
||||
|
||||
\begin{enumerate}
|
||||
\item \codeterm{Name:} der Name sollte beschreiben, was die Funktion
|
||||
\item \codeterm{Name}: der Name sollte beschreiben, was die Funktion
|
||||
tut. In diesem Fall berechnet sie einen Sinus. Ein geeigneter Name
|
||||
w\"are also \code{calculate\_sinewave}.
|
||||
\item \codeterm{Argumente:} die zu brechnende Sinusschwingung sei durch
|
||||
w\"are also \code{calculate\_sinewave()}.
|
||||
\item \codeterm{Argumente}: die zu brechnende Sinusschwingung sei durch
|
||||
ihre Frequenz und die Amplitude bestimmt. Des Weiteren soll noch
|
||||
festgelegt werden, wie lang der Sinus sein soll und mit welcher
|
||||
zeitlichen Aufl\"osung gerechnet werden soll. Es werden also vier
|
||||
Argumente ben\"otigt, sie k\"onnten hei{\ss}en: \code{amplitude},
|
||||
\code{frequency}, \code{t\_max}, \code{t\_step}.
|
||||
\item \codeterm{R\"uckgabewerte:} Um den Sinus korrekt darstellen zu k\"onnen brauchen wir die
|
||||
Argumente ben\"otigt, sie k\"onnten hei{\ss}en: \varcode{varamplitude},
|
||||
\varcode{frequency}, \varcode{t\_max}, \varcode{t\_step}.
|
||||
\item \codeterm{R\"uckgabewerte}: Um den Sinus korrekt darstellen zu k\"onnen brauchen wir die
|
||||
Zeitachse und die entsprechenden Werte. Es werden also zwei
|
||||
Variablen zur\"uckgegeben: \code{time, sine}
|
||||
Variablen zur\"uckgegeben: \varcode{time}, \varcode{sine}
|
||||
\end{enumerate}
|
||||
Mit dieser Information ist es nun gut m\"oglich die Funktion zu
|
||||
implementieren (Listing \ref{sinefunctionlisting}).
|
||||
@@ -1289,7 +1289,7 @@ function [time, sine] = calculate_sinewave(frequency, amplitude, t_max, t_step)
|
||||
Diese Aufgabe kann auch von einer Funktion \"ubernommen werden. Diese
|
||||
Funktion hat keine andere Aufgabe, als die Daten zu plotten. Ihr Name
|
||||
sollte sich an dieser Aufgabe orientieren
|
||||
(z.B. \code{plot\_sinewave}). Um einen einzelnen Sinus zu plotten
|
||||
(z.B. \code{plot\_sinewave()}). Um einen einzelnen Sinus zu plotten
|
||||
werden im Wesentlichen die x-Werte und die zugeh\"origen y-Werte
|
||||
ben\"otigt. Da mehrere Sinus geplottet werden sollen ist es auch
|
||||
sinnvoll eine Zeichenkette f\"ur die Legende an die Funktion zu
|
||||
|
||||
Reference in New Issue
Block a user