Files

87 lines
12 KiB
Plaintext
Raw Permalink Normal View History

2025-10-21 11:20:44 +08:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# Distances exercise\n",
"\n",
"Plot distances in a grid\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# 生成一维数组 [0,1,2,3,4],作为后续坐标轴\n",
"x = np.arange(5)\n",
"\n",
"# 生成列向量 [[0],[1],[2],[3],[4]],形状 (5,1),用于广播计算\n",
"y = np.arange(5)[:, np.newaxis]\n",
"\n",
"# 计算每个网格点 (x_i, y_j) 到原点 (0,0) 的欧氏距离,得到 5×5 距离矩阵\n",
"distance = np.sqrt(x**2 + y**2)\n",
"\n",
"# 用伪彩色图显示距离矩阵,颜色深浅对应距离大小\n",
"plt.pcolor(distance)\n",
"\n",
"# 添加右侧颜色标尺,方便对照数值与颜色\n",
"plt.colorbar()\n",
"\n",
"# 弹出窗口展示图形\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}