New ibox and important environment.
Fixed listofs. New \titlecaption.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user