matrices almost done
This commit is contained in:
parent
84c950c246
commit
240303051f
@ -1,7 +1,7 @@
|
||||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: pointprocessscetchA.tex
|
||||
%%Creator: gnuplot 4.6 patchlevel 4
|
||||
%%CreationDate: Mon Nov 2 19:55:25 2015
|
||||
%%CreationDate: Tue Nov 3 17:29:16 2015
|
||||
%%DocumentFonts:
|
||||
%%BoundingBox: 50 50 373 135
|
||||
%%EndComments
|
||||
@ -430,10 +430,10 @@ SDict begin [
|
||||
/Title (pointprocessscetchA.tex)
|
||||
/Subject (gnuplot plot)
|
||||
/Creator (gnuplot 4.6 patchlevel 4)
|
||||
/Author (jan)
|
||||
/Author (grewe)
|
||||
% /Producer (gnuplot)
|
||||
% /Keywords ()
|
||||
/CreationDate (Mon Nov 2 19:55:25 2015)
|
||||
/CreationDate (Tue Nov 3 17:29:16 2015)
|
||||
/DOCINFO pdfmark
|
||||
end
|
||||
} ifelse
|
||||
|
@ -1,7 +1,7 @@
|
||||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: pointprocessscetchB.tex
|
||||
%%Creator: gnuplot 4.6 patchlevel 4
|
||||
%%CreationDate: Mon Nov 2 19:57:38 2015
|
||||
%%CreationDate: Tue Nov 3 18:24:39 2015
|
||||
%%DocumentFonts:
|
||||
%%BoundingBox: 50 50 373 237
|
||||
%%EndComments
|
||||
@ -430,10 +430,10 @@ SDict begin [
|
||||
/Title (pointprocessscetchB.tex)
|
||||
/Subject (gnuplot plot)
|
||||
/Creator (gnuplot 4.6 patchlevel 4)
|
||||
/Author (jan)
|
||||
/Author (grewe)
|
||||
% /Producer (gnuplot)
|
||||
% /Keywords ()
|
||||
/CreationDate (Mon Nov 2 19:57:38 2015)
|
||||
/CreationDate (Tue Nov 3 18:24:39 2015)
|
||||
/DOCINFO pdfmark
|
||||
end
|
||||
} ifelse
|
||||
|
@ -432,33 +432,181 @@ Dimensions of matrices being concatenated are not consistent.
|
||||
|
||||
\subsection{Matrizen}
|
||||
|
||||
Im Gegesatz zu den 1-dimensionalen Vektoren k\"onnen Martizen
|
||||
n-dimensional sein, das hei{\ss}t, dass sie beliebig viele Dimensionen
|
||||
haben k\"onnen. Von praktischer Bedeutung sind allerdings nur Matrizen
|
||||
mit bis zu vier Dimensionen. Meist beschr\"ankt es sich jedoch auf 2-
|
||||
bis 3-d Matrizen (Abbildung \ref{matrixfig} A,B).
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.5\columnwidth]{matrices}
|
||||
\caption{\textbf{Indices von Vektoren.} Jedes Feld eines Vektors hat
|
||||
einen Index mit dem auf den jeweiligen Inhalt zugegriffen werden
|
||||
kann.}\label{vectorindexingfig}
|
||||
\caption{\textbf{Matrizen. A)} Eine Variable (``test'') die eine
|
||||
2-dimensionale Matrize ist. \textbf{B)} Illustration einer
|
||||
3-dimensionalen Matrize. Die Pfeile zeigen den Rang der
|
||||
Dimensionen an.}\label{matrixfig}
|
||||
\end{figure}
|
||||
|
||||
Erzeugt werden Matrizen sehr \"ahnlich zu den Vektoren (Listing
|
||||
\ref{matrixListing}). Die Definition einer Matrize wird, wie beim
|
||||
Vektor, durch \code{[]} eingeschlossen. Das \code{;} trennt die
|
||||
einzelnen Zeilen der Matrize.
|
||||
|
||||
\footnotesize
|
||||
\begin{lstlisting}[label=matrixListing, caption={Erzeugen von Matrizen.}]
|
||||
>> a = [1 2 3; 4 5 6; 7 8 9]
|
||||
>> a =
|
||||
1 2 3
|
||||
4 5 6
|
||||
7 8 9
|
||||
>>
|
||||
>> b = ones(3,3,2);
|
||||
>> b
|
||||
|
||||
b(:,:,1) =
|
||||
1 1 1
|
||||
1 1 1
|
||||
1 1 1
|
||||
|
||||
b(:,:,2) =
|
||||
1 1 1
|
||||
1 1 1
|
||||
1 1 1
|
||||
\end{lstlisting}
|
||||
\normalsize
|
||||
|
||||
Zur Defintion von mehr-dimensionalen Matrizen ist die Notation in
|
||||
Zeile 1 nicht wirklich 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}
|
||||
Funktion.
|
||||
|
||||
Um Informationen \"uber die Gr\"{\ss}e einer Matrize zu bekommen ist
|
||||
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.
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{matrixIndexing}
|
||||
\caption{\textbf{Indices von Vektoren.} Jedes Feld eines Vektors hat
|
||||
einen Index mit dem auf den jeweiligen Inhalt zugegriffen werden
|
||||
kann.}\label{vectorindexingfig}
|
||||
\caption{\textbf{Indices von Matrizen.} Jedes Feld einer Matrize
|
||||
wird durch einen Index individuell angesprochen. Der Index setzt
|
||||
sich aus so vielen Zahlen zusammen wie es Dimensionen gibt (links
|
||||
2, rechts 3). Dabei steht die 1. Stelle immer f\"ur die Zeile, die
|
||||
2. f\"uer die Spalte und die dritte f\"ur das Blatt,
|
||||
etc.. }\label{matrixindexingfig}
|
||||
\end{figure}
|
||||
|
||||
Der Zugriff auf Inhalte von Matrizen erfolgt \"uber den Index
|
||||
(Abbildung \ref{matrixindexingfig}, Listing
|
||||
\ref{matrixIndexing}). \"Ahnlich zu den Positionen in einem
|
||||
Koordinatensystem wird jede Zelle einer Matrize mit einem Index
|
||||
angesprochen, der aus $n$ Zahlen besteht wobei $n$ die
|
||||
Dimensionalit\"at der Matrize ist. Diese Art des Zugriffs wird
|
||||
\textit{subsript indexing} genannt.
|
||||
|
||||
\footnotesize
|
||||
\begin{lstlisting}[caption={Zugriff auf Inhalte von Matrizen,
|
||||
Indexierung.}, label=matrixIndexing]
|
||||
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||
>> size(x)
|
||||
ans =
|
||||
3 4 5
|
||||
>> x(1,1,1); % obere linke Ecke
|
||||
ans(1,1,1) =
|
||||
14
|
||||
>>
|
||||
>> x(1,1,:) % obere linke Ecke entlang der 3. Dimension
|
||||
ans(1,1,:) =
|
||||
14
|
||||
ans(:,:,2) =
|
||||
58
|
||||
ans(:,:,3) =
|
||||
4
|
||||
ans(:,:,4) =
|
||||
93
|
||||
ans(:,:,5) =
|
||||
56
|
||||
\end{lstlisting}
|
||||
\normalsize
|
||||
|
||||
Alternativ zum \textit{subscript indexing} k\"onnen die Zellen einer
|
||||
Matrize auch \textit{linear} angesprochen werden (Abbildung
|
||||
\ref{matrixlinearindexingfig}). Diese Art der Adressierung ist nicht
|
||||
so intuituiv verst\"andlich, kann aber sehr hilfreich sein. Der
|
||||
``linare'' Index einer Zelle reicht von 1 bis \code{numel(M)}
|
||||
Elemente. Wobei dieser erst entlang der 1. Dimension, dann der 2.,
|
||||
3. etc. Dimension ansteigt. Listing \ref{matrixLinearIndexing} zeigt
|
||||
ein Beispiel fuer den Einsatz des linearen Indexierens z.B. wenn man
|
||||
den Minimalwert aller Elemente einer Matrize ermitteln m\"ochte..
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{matrixLinearIndexing}
|
||||
\caption{\textbf{Indices von Vektoren.} Jedes Feld eines Vektors hat
|
||||
einen Index mit dem auf den jeweiligen Inhalt zugegriffen werden
|
||||
kann.}\label{vectorindexingfig}
|
||||
\caption{\textbf{Lineares Indexieren von Matrizen.} Der Index steigt
|
||||
linear von 1 bis zur Anzahl Elemente in der Matrize an. Dabei
|
||||
steigt der Index zuerst entlang der ersten, zweiten, dritten und
|
||||
weiterer Dimensionen an.}\label{matrixlinearindexingfig}
|
||||
\end{figure}
|
||||
|
||||
\begin{lstlisting}[label=matrixLinearIndexing, caption={Lineares Indexieren in Matrizen.}]
|
||||
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||
>> size(x)
|
||||
ans =
|
||||
3 4 5
|
||||
>> numel(x)
|
||||
ans =
|
||||
60
|
||||
>> min(min(min(x))) % Minumum uber die Zeilen, Spalten, Blaetter...
|
||||
ans =
|
||||
4
|
||||
>> min(x(:)) % oder so
|
||||
ans =
|
||||
4
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
Beim Rechnen mit Matrizen gelten die gleichen Regeln wie bei
|
||||
Vektoren. Matrizen k\"onnen solange elementweise miteinander
|
||||
Verrechnet werden, wie die Dimensionalit\"aten
|
||||
\"ubereinstimmen. Besondere Vorsicht sollte man immer dann walten
|
||||
lassen, wenn man Matrizen miteinander mulitplizieren, dividieren oder
|
||||
postenzieren will. Hier ist es wichtig sich klarzumachen was man will:
|
||||
Eine elementweise multiplikation (\code{.*} Operator, Listing
|
||||
\ref{matrixOperations} Zeile 18) oder ob eine Matrixmultiplikation
|
||||
(\code{*} Operator, Listing \ref{matrixOperations} Zeile 12)
|
||||
durchgef\"uhrt werden soll.
|
||||
|
||||
\footnotesize
|
||||
\begin{lstlisting}[label=matrixOperations, caption={Zwei Arten von Multiplikationen auf Matrizen.}]
|
||||
>> A = randi(10, [3, 3]) % 2-D Matrix
|
||||
A =
|
||||
3 8 2
|
||||
2 10 3
|
||||
10 7 1
|
||||
>> B = randi(10, [3, 3]) % dto
|
||||
B =
|
||||
2 1 7
|
||||
1 5 9
|
||||
5 10 5
|
||||
>>
|
||||
>> A * B % Matrix Multiplikation
|
||||
ans =
|
||||
24 63 103
|
||||
29 82 119
|
||||
32 55 138
|
||||
>>
|
||||
>> A .* B % Elementweise Multiplikation
|
||||
ans =
|
||||
6 8 14
|
||||
2 50 27
|
||||
50 70 5
|
||||
>>
|
||||
\end{lstlisting}
|
||||
\normalsize
|
||||
|
||||
\section{Boolesche Operationen}
|
||||
|
||||
|
||||
|
||||
\section{Logisches Indizieren}
|
||||
|
||||
|
||||
|
@ -413,7 +413,7 @@
|
||||
\framesubtitle{Indexierung}
|
||||
\tiny
|
||||
\begin{lstlisting}
|
||||
>> x = roundi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||
>> x = randi(100, [3, 4, 5]); % 3-D Matrix mit Zufallszahlen
|
||||
>>
|
||||
>> x(1,1,1); % obere linke Ecke
|
||||
ans(1,1,1) =
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user