You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从给定4×4矩阵中提取3×3矩阵并统计可生成数量

实现逻辑

4×4矩阵提取连续的3×3子矩阵时,行和列的起始索引可选范围都是0和1(因为4-3+1=2个可选起始位),最终可生成的3×3子矩阵总数量为2×2=4个。
切片提取的逻辑很简单:遍历所有合法的行起始索引和列起始索引,每次取从起始索引开始的连续3行、每行取连续3个元素即可。

可直接运行的Python代码
# 定义输入的4×4矩阵
matrix = [
    [1, 2, 3, 4],
    [2, 3, 4, 5],
    [6, 7, 8, 9],
    [10, 11, 12, 13]
]

submatrix_size = 3
row_count = len(matrix)
col_count = len(matrix[0])
submatrices = []

# 遍历所有合法的行起始位置
for i in range(row_count - submatrix_size + 1):
    # 遍历所有合法的列起始位置
    for j in range(col_count - submatrix_size + 1):
        # 切片提取3×3子矩阵
        sub = [row[j:j+submatrix_size] for row in matrix[i:i+submatrix_size]]
        submatrices.append(sub)

# 输出结果
print(f"可生成的3×3子矩阵总数量:{len(submatrices)}")
for idx, sub in enumerate(submatrices, 1):
    print(f"\n第{idx}个3×3子矩阵:")
    for row in sub:
        print(row)
运行输出结果
  • 可生成的3×3子矩阵总数量:4
  • 第1个3×3子矩阵:
[1, 2, 3]
[2, 3, 4]
[6, 7, 8]
  • 第2个3×3子矩阵:
[2, 3, 4]
[3, 4, 5]
[7, 8, 9]
  • 第3个3×3子矩阵:
[2, 3, 4]
[6, 7, 8]
[10, 11, 12]
  • 第4个3×3子矩阵:
[3, 4, 5]
[7, 8, 9]
[11, 12, 13]

内容的提问来源于stack exchange,提问作者Jaswanth Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:57:04