python - 将大矩阵拆分为多个较小的矩阵 - 困难
问题描述
我有一个 32*32 矩阵,我想把它分成 4 个 8x8 矩阵。
以下是我如何尝试为大矩阵的左上部分制作一个较小的矩阵(pix是一个 32x32 矩阵)。
A = [[0]*mat_size]*mat_size
for i in range(mat_ size):
for j in range(mat_size):
A[i][j] = pix[i, j]
因此,pix具有以下左上部分的值:
198 197 194 194 197 192 189 196
199 199 198 198 199 195 195 145
200 200 201 200 200 204 131 18
201 201 199 201 203 192 57 56
201 200 198 200 207 171 41 141
200 200 198 199 208 160 38 146
198 198 198 198 206 157 39 129
198 197 197 199 209 157 38 77
但是当我print(A)
在循环之后,A 的所有行都等于pix的最后一行。所以198 197 197 199 209 157 38 77
我知道我可以使用8 行A = pix[:8, :8]
,但我更喜欢出于某种目的使用循环。我想知道为什么那个循环解决方案没有给我正确的结果。
解决方案
A = np.zeros((4, 4, 8, 8))
for i in range(4):
for j in range(4):
A[i, j] = pix[i*8:(i+1)*8, j*8:(j+1)*8]
如果我正确理解您的问题,则此解决方案应该有效。它所做的是遍历像素矩阵,每次选择一个 8*8 矩阵。这是你需要的吗?
推荐阅读
- mysql - 按日期删除表而不删除系统表的功能/过程
- colors - Visual Studio Code 更改代码段文本颜色
- dependency-injection - 在 Autofac 中共享依赖实例的正确方法是什么?
- php - 为什么我得到这个stdClass类的错误对象?
- amazon-web-services - 如何使用 AWS Powershell 工具获取入口规则中允许的安全组 ID?
- html5-canvas - Fabricjs中鼠标悬停对象时如何显示对象边界框?
- delphi - 删除元生成器 MSHTML
- azure - 如何在 Azure API 管理开发者门户中禁用 try it 功能?
- python-3.x - 类在 Python 中没有属性
- php - PHP 使用 in_array 来检查另一个数组的数组