147 lines
6.3 KiB
Plaintext
147 lines
6.3 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "00d20df1",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b986454c",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Übung: Roboterbewegung\n",
|
|
"\n",
|
|
"Ein Roboter steht in einem Raum, seine Position auf dem Boden wird in ein Koordinatensystem eingetragen - die y-Achse ist dabei die Himmelsrichtung _Nord_, die x-Achse die Himmelsrichtung _Ost_. Zu Beginn steht der Roboter auf der Position $x=3$ und $y=5$. Danach führt der Roboter folgende Bewegungen durch.\n",
|
|
"\n",
|
|
"- Fahrt 1 Meter Ost, 2 Meter Nord\n",
|
|
"- Fahrt 2 Meter Ost, 1 Meter Nord\n",
|
|
"- Fahrt 2 Meter Ost, 1 Meter Süd\n",
|
|
"- Fahrt 1 Meter West, 3 Meter Süd\n",
|
|
"\n",
|
|
"a) Drücken Sie die 4 Bewegungen als Arrays aus und speichern Sie diese in Python-Variablen."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "bec0fab0",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"start = np.array([3,5])\n",
|
|
"fahrt1 = ...\n",
|
|
"fahrt2 = ...\n",
|
|
"fahrt3 = ...\n",
|
|
"fahrt4 = ..."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "e55f20bc",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "ValueError",
|
|
"evalue": "all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 2 and the array at index 1 has size 1",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
|
|
"\u001b[31mValueError\u001b[39m Traceback (most recent call last)",
|
|
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 8\u001b[39m\n\u001b[32m 5\u001b[39m plt.xlim((\u001b[32m0\u001b[39m,\u001b[32m10\u001b[39m))\n\u001b[32m 6\u001b[39m plt.ylim((\u001b[32m0\u001b[39m,\u001b[32m10\u001b[39m))\n\u001b[32m----> \u001b[39m\u001b[32m8\u001b[39m \u001b[43mplot_path\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstart\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mfahrt1\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfahrt2\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfahrt3\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfahrt4\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 3\u001b[39m, in \u001b[36mplot_path\u001b[39m\u001b[34m(start, moves)\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mplot_path\u001b[39m(start, moves):\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m path = \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mstart\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[43m+\u001b[49m\u001b[43m \u001b[49m\u001b[43mmoves\u001b[49m\u001b[43m)\u001b[49m.cumsum(axis=\u001b[32m0\u001b[39m)\n\u001b[32m 4\u001b[39m plt.plot(path[:,\u001b[32m0\u001b[39m], path[:,\u001b[32m1\u001b[39m])\n\u001b[32m 5\u001b[39m plt.xlim((\u001b[32m0\u001b[39m,\u001b[32m10\u001b[39m))\n",
|
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Computational_and_Data_Science/FS25/CDS104-Databases-and-Data-Processing/code/.venv/lib/python3.13/site-packages/numpy/_core/shape_base.py:292\u001b[39m, in \u001b[36mvstack\u001b[39m\u001b[34m(tup, dtype, casting)\u001b[39m\n\u001b[32m 290\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(arrs, \u001b[38;5;28mtuple\u001b[39m):\n\u001b[32m 291\u001b[39m arrs = (arrs,)\n\u001b[32m--> \u001b[39m\u001b[32m292\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_nx\u001b[49m\u001b[43m.\u001b[49m\u001b[43mconcatenate\u001b[49m\u001b[43m(\u001b[49m\u001b[43marrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcasting\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcasting\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"\u001b[31mValueError\u001b[39m: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 2 and the array at index 1 has size 1"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Mit dieser Zelle können Sie die Fahrt des Roboters plotten - einfach ausführen\n",
|
|
"def plot_path(start, moves):\n",
|
|
" path = np.vstack([start] + moves).cumsum(axis=0)\n",
|
|
" plt.plot(path[:,0], path[:,1])\n",
|
|
" plt.xlim((0,10))\n",
|
|
" plt.ylim((0,10))\n",
|
|
"\n",
|
|
"plot_path(start, [fahrt1, fahrt2, fahrt3, fahrt4])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9f47078c",
|
|
"metadata": {},
|
|
"source": [
|
|
"b) Berechnen Sie den Zielpunkt des Roboters nach seiner Fahrt."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "90852486",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3c8684d8",
|
|
"metadata": {},
|
|
"source": [
|
|
"c) Welche Strecke hat der Roboter zurückgelegt (nicht der direkte Weg)?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "6ee1ca50",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3474df24",
|
|
"metadata": {},
|
|
"source": [
|
|
"d) Wie weit wäre der Roboter gefahren, wenn er die direkte Strecke von Start zu Ziel gefahren wäre?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "04a2e60a",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "code (3.13.2)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.13.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|