update of vectors/matrices

This commit is contained in:
Jan Grewe 2015-10-07 13:18:25 +02:00
parent 69f2deb0fd
commit 65022a94ca

View File

@ -55,23 +55,60 @@ benannt werden (z.B. variablen\_datentypen\_meier.m).
\part Mit \textbf{absteigendem} Inhalt von 100 bis 0. \part Mit \textbf{absteigendem} Inhalt von 100 bis 0.
\part In 10 Schritten von 0 bis 1. \part In 10 Schritten von 0 bis 1.
\part In 11 Schritten von 0 bis 1. \part In 11 Schritten von 0 bis 1.
\part In 50 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante \verb+pi+ \part In 50 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante
in Matlab definiert). \code{pi} in Matlab definiert).
\end{parts} \end{parts}
\question Indizieren: \question Rechnen mit Vektoren:
\begin{parts} \begin{parts}
\part Erzeuge einen Vektor mit 100 Zufallszahlen (z.B. mit der \part Definiere einen Vektor \code{x = [3 2 6 8];}
Funktion \verb+rand+). \part Wie gro{\ss} ist der Vektor? Benutze die Funktionen
XXX Problem: rand(100) macht matrix. Also doch lieber 0:100:0.1 ? XXX \code{size} und \code{length}. Was ist der Unterschied zwischen
\part Gib jeweils den ersten, den letzten, den 5., 24. und den vorletzten Wert aus. den beiden Funktionen?
\part Wie \"andern sich \code{size} und \code{length} des
Vektors wenn er transponiert wird?
\part Addiere 5 zu jedem Element von \verb+x+.
\part Multipliziere jedes Element von \code{x} mit 2;
\part Definiere einen zweiten Vektor (\verb+y = [4 1 3 5];+).
Stelle sicher, dass \code{x} wieder in seiner urspr\"unglichen
Form ist.
\part Addiere beide Vektoren \code{x + y}.
\part Subtrahiere beide Vektoren \code{x - y}.
\part Multipliziere beide Vektoren \code{x * y}.
\part Erkl\"are die Fehlermeldung.
\part Was m\"usste man machen, damit \code{mtimes} bzw. der
\code{*} Operator funktionieren?
\part Multipliziere die Vektoren elementweise (\code{x .* y})
und weise das Ergebnis eine neuen Variablen zu.
\end{parts}
\question Erzeugen von Vektoren mit Helferfunktionen:
\begin{parts}
\part Erstelle einen 100 Elemente langen Vektor mit der Funktion
\code{ones} (siehe Hilfe). Was macht sie?
\part Erstelle einen 100 Elemente langen Vektor mit der Funktion
\code{zeros}. Was macht diese?
\part Erstelle einen 100 Elemente langen Vektor in dem jedes
Element den Wert 4.5 hat.
\part Erzeuge einen Vektor mit 100 Zufallszahlen (\code{rand},
siehe Hilfe).
\part Erzeuge einen Vektor mit 100 Werten zwischen 0 und 1
mithilfe der Funktion \code{linspace}.
\end{parts}
\question Indizieren in Vektoren:
\begin{parts}
\part Erzeuge einen Vektor mit 100 Elementen (0 - 100).
\part Gib jeweils den ersten, den letzten, den 5., 24. und den
vorletzten Wert aus.
\part Gib die ersten 10 Werte aus. \part Gib die ersten 10 Werte aus.
\part Gib die letzten 10 Werte aus. \part Gib die letzten 10 Werte aus.
\part Gib die Werte an den Stellen 3, 15, und 42 zusammen als Vektor aus. \part Versuche den Wert an der Stelle 0 auszugeben.
\part Versuche den Wert an der Stelle 110 auszugeben.
\part Gib die Werte an den Stellen 3, 15, und 42 zusammen als
Vektor aus.
\part Gib 10 zuf\"allig ausgew\"ahlte Werte aus (benutze \part Gib 10 zuf\"allig ausgew\"ahlte Werte aus (benutze
\verb+randi+ um die Indizes zu erstellen). \verb+randi+ um die Indizes zu erstellen).
XXX wieder das matrix Problem von randi XXX
\end{parts} \end{parts}
\question Erzeuge eine Variable und speichere etwas Text in ihr, \question Erzeuge eine Variable und speichere etwas Text in ihr,
@ -79,25 +116,12 @@ XXX wieder das matrix Problem von randi XXX
text'}). Benutze die Indizierung um die W\"orter einzeln text'}). Benutze die Indizierung um die W\"orter einzeln
auszugeben. auszugeben.
\question Definiere zwei Vektoren: \verb+x = [3 2 6 8];+ und
\verb+y = [4; 1; 3; 5];+
\begin{parts}
\part Was sind die Gr\"o{\ss}en von \verb+x+ und \verb+y+ (siehe
\verb+size+)?
\part ... addiere 5 zu jedem Element von \verb+x+.
\part ... addiere 3 zu jedem Element von y, das einen ungeraden
Index hat.
\part ... multipliziere jedes Element von \verb+x+ mit dem
entsprechenden Element in \verb+y+ und weise das Ergebnis der
Variable \verb+z+ zu.
XXX Vorher noch eine Aufgabe, bei der man nicht transponieren muss! XXX
\end{parts}
\newpage \newpage
\section*{Matrizen} \section*{Matrizen}
\question Erstelle folgende Matrix \question Erstelle folgende Matrix
\[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 & 4 \end{array} \right) \] \[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 &
4 \end{array} \right) \]
\begin{parts} \begin{parts}
\part Gib das Element in der 3. Zeile und 2. Spalte aus. \part Gib das Element in der 3. Zeile und 2. Spalte aus.
\part Gib jeweils alle Elemente der 1., 2. und 3. Zeile aus. \part Gib jeweils alle Elemente der 1., 2. und 3. Zeile aus.
@ -107,20 +131,45 @@ XXX Vorher noch eine Aufgabe, bei der man nicht transponieren muss! XXX
\part Multipliziere alle Elementen der 3. Spalte mit 2. \part Multipliziere alle Elementen der 3. Spalte mit 2.
\end{parts} \end{parts}
\question Erstelle eine $5 \times 5$ Matrix die Zufallszahlen enth\"alt (nutze die \question Erstelle eine $5 \times 5$ Matrix \code{M} die
MATLAB Funktion \verb+randn()+. Benutze die Hilfe: Was macht die Funktion?). Zufallszahlen enth\"alt (nutze die MATLAB Funktion
\verb+randn()+. Benutze die Hilfe: Was macht die Funktion?).
\begin{parts} \begin{parts}
\part Gib das Element in der 2. Zeile und 3. Spalte aus. \part Gib das Element in der 2. Zeile und 3. Spalte aus.
\part Gib jeweils alle Elemente der 1., 3. und letzten Zeile aus. \part Gib jeweils alle Elemente der 1., 3. und letzten Zeile aus.
\part Gib jeweils alle Elemente der 2. und 4. Spalte aus. \part Gib jeweils alle Elemente der 2. und 4. Spalte aus.
\part Greife mit einem einzigen Kommando auf die Elemente jeder \part Greife mit einem einzigen Kommando auf die Elemente jeder
zweiten Spalte zu und speichere die Daten in einer neuen Variable. zweiten Spalte zu und speichere die Daten in einer neuen Variable.
\part Berechne jeweils den Mittelwert der 1., 3. und 5. Zeile
(Funktion \code{mean}, siehe Hilfe).
\part Berechne die Summe aller Werte der 2. und 4. Spalte
(Funktion \code{sum}, siehe Hilfe).
\part Berechne die Summer aller Elemente der Matrize.
\part Ersetze die Elemente der 2. Zeile mit denen der 4.
\part F\"uhre folgendes Kommando aus: \code{M(1:2,1) = [1, 2,
3]}. Was k\''onnte die Absicht dieses Codes gewesen sein? Was
bedeutet die Fehlermeldung?
\end{parts}
\question Matrizen k\"onnen neben der ``normalen''
\textit{subscript} Indizierung auch \textit{linear} indiziert werden
(siehe Hilfe \"uber Indexing oder Funktionen \verb+sub2ind+ oder
\verb+ind2sub+).
\begin{parts}
\part Erstelle eine 2-D Matrix mit Zufallszahlen mit der Dimensionalit\"at
\verb+[10,10]+.
\part Wie viele Werte enth\"alt sie?
\part Benutze das lineare Indizieren um 50 zuf\"allige Werte
auszuw\"ahlen.
\part Wo liegt der Vorteil gegen\"uber der \textit{subscript}
Indizierung?
\part Berechne die Summe aller Werte mit einem Funktionsaufruf..
\end{parts} \end{parts}
\question Erstelle folgende Variablen \verb+x = [1 5 9]+ and \question Erstelle folgende Variablen \verb+x = [1 5 9]+ and
\verb+y = [7 1 5]+ und \verb+M = [3 1 6; 5 2 7]+. Welche der \verb+y = [7 1 5]+ und \verb+M = [3 1 6; 5 2 7]+. Welche der
folgenden Operationen funktionieren? Wenn nicht, warum folgenden Operationen funktionieren? Wenn nicht, warum funktionieren
funktionieren sie nicht? Teste Deine Vorhersagen. sie nicht? Teste Deine Vorhersagen.
\begin{parts} \begin{parts}
\part \code{x + y} \part \code{x + y}
\part \code{x * M} \part \code{x * M}
@ -130,39 +179,21 @@ XXX Vorher noch eine Aufgabe, bei der man nicht transponieren muss! XXX
\part \code{M - [x; y]} \part \code{M - [x; y]}
\end{parts} \end{parts}
\question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze die \question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze
\verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe die \verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe
nach, wie sie benutzt wird). nach, wie sie benutzt wird).
\begin{parts} \begin{parts}
\part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension). \part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension).
\end{parts} \end{parts}
\question Erstelle eine 3-D Matrix der Gr\"o{\ss}e \verb+[5, 5, 3]+ \question Erzeuge eine $5 \times 5 \times 5$ Matrix die mit
mithilfe der Funktion \code{ones()}. Multipliziere alle Elemente ganzzahligen, gleichverteilten Zufallszahlen zwischen 0 und 100
des ersten Blattes mit 1, die des zweiten mit 2, des dritten mit gef\"ullt ist.
3.
\question Erzeuge eine $5 \times 5 \times 5$ Matrix die mit ganzzahligen, gleichverteilten
Zufallszahlen zwischen 0 und 100 gef\"ullt ist.
\begin{parts} \begin{parts}
\part Berechne den Mittelwert aller Bl\"atter dieser Matrix (benutze \verb+mean()+, siehe Hilfe). \part Berechne den Mittelwert aller Bl\"atter dieser Matrix
(benutze \verb+mean()+, siehe Hilfe).
\end{parts} \end{parts}
XXX Das geht auch in 2D: Mittelwerte der Zeilen, bzw. Spalten! Das waere sehr wichtig! Auch um den Anschluss an excel zu machen! XXXX
\question Matrizen k\"onnen neben der ``normalen'' \textit{subscript}
XXX Das wuerde ich mit einer 2D Matrize machen! XXX
Indizierung auch \textit{linear} indiziert werden (siehe Hilfe
\"uber Indexing oder Funktionen \verb+sub2ind+ oder
\verb+ind2sub+).
\begin{parts}
\part Erstelle eine 3-D Matrix mit Zufallszahlen mit der Dimensionalit\"at
\verb+[10,10,10]+.
\part Wie viele Werte enth\"alt sie?
\part Benutze das lineare Indizieren um 500 zuf\"allige Werte
auszuw\"ahlen.
\part Wo liegt der Vorteil gegen\"uber der \textit{subscript}
Indizierung?
\end{parts}
\end{questions} \end{questions}
\end{document} \end{document}