199 lines
7.9 KiB
TeX
199 lines
7.9 KiB
TeX
\documentclass[12pt,a4paper,pdftex]{exam}
|
|
|
|
\usepackage[german]{babel}
|
|
\usepackage{natbib}
|
|
\usepackage{graphicx}
|
|
\usepackage[small]{caption}
|
|
\usepackage{sidecap}
|
|
\usepackage{pslatex}
|
|
\usepackage{amsmath}
|
|
\usepackage{amssymb}
|
|
\setlength{\marginparwidth}{2cm}
|
|
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
|
|
|
%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
|
\pagestyle{headandfoot} \header{{\bfseries\large \"Ubung
|
|
2}}{{\bfseries\large Vektoren und Matrizen}}{{\bfseries\large 12. Oktober, 2015}}
|
|
\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email:
|
|
jan.grewe@uni-tuebingen.de} \runningfooter{}{\thepage}{}
|
|
|
|
\setlength{\baselineskip}{15pt}
|
|
\setlength{\parindent}{0.0cm}
|
|
\setlength{\parskip}{0.3cm}
|
|
\renewcommand{\baselinestretch}{1.15}
|
|
|
|
\newcommand{\code}[1]{\texttt{#1}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{document}
|
|
|
|
\vspace*{-6.5ex}
|
|
\begin{center}
|
|
\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
|
|
{\large Jan Grewe, Jan Benda}\\[-3ex]
|
|
Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
|
|
\end{center}
|
|
|
|
Die folgenden Aufgaben dienen der Wiederholung, \"Ubung und
|
|
Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost
|
|
werden. Die L\"osung soll in Form eines einzelnen Skriptes (m-files)
|
|
im ILIAS hochgeladen werden. Jede Aufgabe sollte in einer eigenen
|
|
``Zelle'' gel\"ost sein. Die Zellen \textbf{m\"ussen} unabh\"angig
|
|
voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
|
|
``variablen\_datentypen\_\{nachname\}.m'' benannt werden
|
|
(z.B. variablen\_datentypen\_mueller.m).
|
|
|
|
\begin{questions}
|
|
|
|
\section*{Vektoren}
|
|
|
|
\question Erzeuge Vektoren mit folgendem Inhalt:
|
|
\begin{parts}
|
|
\part Von 1 bis 10 in ganzzahligen Schritten.
|
|
\part Von 0 bis 20 in 2er Schritten.
|
|
\part Mit \textbf{absteigendem} Inhalt von 100 bis 0.
|
|
\part In 10 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
|
|
\code{pi} in Matlab definiert).
|
|
\end{parts}
|
|
|
|
\question Rechnen mit Vektoren:
|
|
\begin{parts}
|
|
\part Definiere einen Vektor \code{x = [3 2 6 8];}
|
|
\part Wie gro{\ss} ist der Vektor? Benutze die Funktionen
|
|
\code{size} und \code{length}. Was ist der Unterschied zwischen
|
|
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 letzten 10 Werte 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
|
|
\verb+randi+ um die Indizes zu erstellen).
|
|
\end{parts}
|
|
|
|
\question Erzeuge eine Variable und speichere etwas Text in ihr,
|
|
so dass mindestens 2 Worte vorhanden sind. (z.B. \code{x = 'some
|
|
text'}). Benutze die Indizierung um die W\"orter einzeln
|
|
auszugeben.
|
|
|
|
\newpage
|
|
\section*{Matrizen}
|
|
|
|
\question Erstelle folgende Matrix
|
|
\[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 &
|
|
4 \end{array} \right) \]
|
|
\begin{parts}
|
|
\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. Spalte aus.
|
|
\part Erh\"ohe das Element in der 2. Zeile und 3. Spalte um Eins.
|
|
\part Ziehe von allen Elementen der 1. Zeile 5 ab.
|
|
\part Multipliziere alle Elementen der 3. Spalte mit 2.
|
|
\end{parts}
|
|
|
|
\question Erstelle eine $5 \times 5$ Matrix \code{M} die
|
|
Zufallszahlen enth\"alt (nutze die MATLAB Funktion
|
|
\verb+randn()+. Benutze die Hilfe: Was macht die Funktion?).
|
|
\begin{parts}
|
|
\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 2. und 4. Spalte aus.
|
|
\part Greife mit einem einzigen Kommando auf die Elemente jeder
|
|
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}
|
|
|
|
\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
|
|
folgenden Operationen funktionieren? Wenn nicht, warum funktionieren
|
|
sie nicht? Teste Deine Vorhersagen.
|
|
\begin{parts}
|
|
\part \code{x + y}
|
|
\part \code{x * M}
|
|
\part \code{x + y'}
|
|
\part \code{M - [x y]}
|
|
\part \code{[x; y]}
|
|
\part \code{M - [x; y]}
|
|
\end{parts}
|
|
|
|
\question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze
|
|
die \verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe
|
|
nach, wie sie benutzt wird).
|
|
\begin{parts}
|
|
\part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension).
|
|
\end{parts}
|
|
|
|
\question Erzeuge eine $5 \times 5 \times 5$ Matrix die mit
|
|
ganzzahligen, gleichverteilten Zufallszahlen zwischen 0 und 100
|
|
gef\"ullt ist.
|
|
\begin{parts}
|
|
\part Berechne den Mittelwert aller Bl\"atter dieser Matrix
|
|
(benutze \verb+mean()+, siehe Hilfe).
|
|
\end{parts}
|
|
|
|
\end{questions}
|
|
|
|
\end{document} |