New ibox and important environment.

Fixed listofs.
New \titlecaption.
This commit is contained in:
2015-11-08 21:05:07 +01:00
parent 4804946112
commit 9b7921feca
12 changed files with 190 additions and 133 deletions

View File

@@ -9,11 +9,11 @@ einige dieser ``Design pattern'' zusammen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{for Schleifen \"uber Vektoren}
Manchmal m\"ochte man doch mit einer for-Schleife \"uber einen Vektor iterieren.
\begin{lstlisting}
x = [2:3:20]; % irgendein Vektor
Grundlegend ist das Iterieren \"uber den Inhalt eines Vektors mit einer \code{for}-Schleife:
\begin{lstlisting}[caption={for-Schleife mit Indexen \"uber einen Vektor}]
x = [2:3:20]; % irgendein Vektor
for i=1:length(x) % Mit der for-Schleife "loopen" wir ueber den Vektor
i % das ist der Index der die Elemente des Vektors nacheinander indiziert.
i % das ist der Index, der die Elemente des Vektors indiziert.
x(i) % das ist der Wert des i-ten Elements des Vektors x.
a = x(i); % die Variable a bekommt den Wert des i-ten Elements des Vektors x zugewiesen.
% Benutze den Wert:
@@ -24,8 +24,8 @@ end
Wenn in der Schleife das Ergebnis in einen Vektor gespeichert werden soll,
sollten wir vor der Schleife schon einen Vektor f\"ur die Ergebnisse
erstellen:
\begin{lstlisting}
x = [2:3:20]; % irgendein Vektor
\begin{lstlisting}[caption={for-Schleife zum Schreiben eines Vektors}]
x = [1.2 2.3 2.6 3.1]; % irgendein Vektor
y = zeros(length(x),1); % Platz fuer die Ergebnisse, genauso viele wie Loops der Schleife
for i=1:length(x)
% Schreibe den Rueckgabewert der Funktion get_something an die i-te
@@ -39,8 +39,8 @@ mean(y)
Die Berechnungen in der Schleife k\"onnen statt einer Zahl auch einen Vektor
zur\"uckgeben. Wenn die L\"ange diese Vektors bekannt ist, dann kann vorher
eine entsprechend gro{\ss}e Matrix angelegt werden:
\begin{lstlisting}
x = [2:3:20]; % irgendein Vektor
\begin{lstlisting}[caption={for-Schleife zum Schreiben von Zeilen einer Matrix}]
x = [2:3:20]; % irgendein Vektor
y = zeros(length(x),10); % Platz fuer die Ergebnisse
for i=1:length(x)
% Schreibe den Rueckgabewert der Funktion get_something - jetzt ein
@@ -52,12 +52,11 @@ end
mean(y, 1)
\end{lstlisting}
Alternativ k\"onnen die in der Schleife erzeugten Vektoren zu einem
einzigen, durchgehenden Vektor zusammengestellt werden:
\begin{lstlisting}
\begin{lstlisting}[caption={for-Schleife zum Aneinanderh\"angen von Vektoren}]
x = [2:3:20]; % irgendein Vektor
y = []; % Leerer Vektor fuer die Ergebnisse
y = []; % Leerer Vektor fuer die Ergebnisse
for i=1:length(x)
% Die Funktion get_something gibt einen Vektor zurueck:
z = get_something( x(i) );
@@ -77,7 +76,7 @@ und Standardabweichungen (auch Skalierungen) zur\"uck. Multiplikation
mit einem Faktor skaliert die Standardabweichung und Addition einer Zahl
verschiebt den Mittelwert.
\begin{lstlisting}
\begin{lstlisting}[caption={Skalierung von Zufallszahlen}]
% 100 random numbers draw from a Gaussian distribution with mean 0 and standard deviation 1.
x = randn(100, 1);
@@ -88,7 +87,7 @@ y = randn(100, 1)*sigma + mu;
\end{lstlisting}
Das gleiche Prinzip ist manchmal auch sinnvoll f\"ur \code{zeros} oder \code{ones}:
\begin{lstlisting}
\begin{lstlisting}[caption={Skalierung von zeros und ones}]
x = -1:0.01:2; % Vektor mit x-Werten
plot(x, exp(-x.*x));
% Plotte f\"ur die gleichen x-Werte eine Linie mit y=0.8:
@@ -115,7 +114,7 @@ Werte des $y$-Vektors k\"onnen dann gegen die Werte des $x$-Vektors
geplottet werden.
Folgende Programme berechnen und plotten die Funktion $f(x)=e^{-x^2}$:
\begin{lstlisting}
\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- sehr ausf\"uhrlich}]
xmin = -1.0;
xmax = 2.0;
dx = 0.01; % Schrittweite
@@ -124,13 +123,13 @@ y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren
plot(x, y);
\end{lstlisting}
\begin{lstlisting}
\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- k\"urzer}]
x = -1:0.01:2; % Vektor mit x-Werten
y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren
plot(x, y);
\end{lstlisting}
\begin{lstlisting}
\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- sehr kompakt}]
x = -1:0.01:2; % Vektor mit x-Werten
plot(x, exp(-x.*x));
\end{lstlisting}
@@ -143,25 +142,25 @@ mit anderen Histogrammen oder mit theoretischen
Wahrscheinlichkeitsverteilungen werden.
Die \code{histogram} Funktion macht das mit den entsprechenden Parametern automatisch:
\begin{lstlisting}
\begin{lstlisting}[caption={Probability-density-function mit der histogram-Funktion}]
x = randn(100, 1); % irgendwelche reellwertige Daten
histogram(x, 'Normalization', 'pdf');
\end{lstlisting}
\begin{lstlisting}
\begin{lstlisting}[caption={Probability mit der histogram-Funktion}]
x = randi(6, 100, 1); % irgendwelche integer Daten
histogram(x, 'Normalization', 'probability');
\end{lstlisting}
So geht es aber auch:
\begin{lstlisting}
\begin{lstlisting}[caption={Probability-density-function mit der hist- und bar-Funktion}]
x = randn(100, 1); % irgendwelche reellwertige Daten
[h, b] = hist(x); % Histogram berechnen
h = h/sum(h)/(b(2)-b(1)); % normieren zu einer Wahrscheinlichkeitsdichte
bar(b, h); % und plotten.
\end{lstlisting}
\begin{lstlisting}
\begin{lstlisting}[caption={Probability mit der hist- und bar-Funktion}]
x = randi(6, 100, 1); % irgendwelche integer Daten
[h, b] = hist(x); % Histogram berechnen
h = h/sum(h); % normieren zu Wahrscheinlichkeiten