python批量的从大矩阵中找小矩阵第一个元素所在行和列,并保存为txt文件
时间: 2024-05-03 19:20:01 浏览: 134
python实现Excel文件转换为TXT文件
5星 · 资源好评率100%
以下是一个示例代码,可以实现批量从大矩阵中找小矩阵第一个元素所在行和列,并保存为txt文件:
```python
import numpy as np
# 定义大矩阵和小矩阵
big_matrix = np.random.randint(0, 10, size=(10, 10))
small_matrix = np.array([[3, 4], [6, 7]])
# 获取小矩阵第一个元素
first_elem = small_matrix[0, 0]
# 遍历大矩阵,寻找匹配
matches = []
for i in range(big_matrix.shape[0] - small_matrix.shape[0] + 1):
for j in range(big_matrix.shape[1] - small_matrix.shape[1] + 1):
if big_matrix[i, j] == first_elem:
if np.array_equal(big_matrix[i:i+small_matrix.shape[0], j:j+small_matrix.shape[1]], small_matrix):
matches.append((i, j))
# 保存结果到txt文件
with open("matches.txt", "w") as f:
for match in matches:
f.write(f"({match[0]}, {match[1]})\n")
```
解释一下这段代码:
首先定义了一个大矩阵和一个小矩阵,其中大矩阵是一个 $10 \times 10$ 的随机矩阵,小矩阵是一个 $2 \times 2$ 的矩阵。
然后获取小矩阵的第一个元素,即 $3$。
接下来遍历大矩阵,对于每个位置,如果发现和小矩阵的第一个元素相同,就检查是否可以在大矩阵中找到和小矩阵完全匹配的子矩阵。如果是,则把匹配的位置记录在一个列表中。
最后把匹配的位置保存到一个txt文件中。每个位置用一个括号表示,中间用逗号隔开,每个位置占一行。
注意,这段代码只是一个示例,实际使用时需要根据自己的需求进行修改。例如,可以将大矩阵和小矩阵的定义改为从文件中读取,或者从终端参数中获取。也可以将保存结果的方式改为其他格式,比如JSON或CSV。
阅读全文