淡化示例
<我想我有下面的矩阵A,1 2 4 3
1 7 3 6
2 4 1 1
6 9 3 6
我想把它转换成矩阵B,它看起来像
0 0 4 4
0 0 3 6
2 4 0 0
6 9 0 0
基本上,我想要一个2x2的零矩阵,在上面给出的4x4矩阵的对角线上
需要通用解决方案
我上面提供的只是一个例子,我将使用(12961296)大小的矩阵作为输入,我想在其对角线内插入一个3x3的零矩阵
到目前为止我做了什么?
一个简单的基于范围的循环,然后像这样将值设置为零
for i in range(0, mat.shape[0] - 1, 3):
mat[i][i] = 0
mat[i][i + 1] = 0
mat[i][i + 2] = 0
mat[i + 1][i] = 0
mat[i + 1][i + 1] = 0
mat[i + 1][i + 2] = 0
mat[i + 2][i] = 0
mat[i + 2][i + 1] = 0
mat[i + 2][i + 2] = 0
我完全理解,这是一种非常粗鲁和肮脏的方式。请建议一种快速且“简单”的方法
以下是一个无循环的解决方案:
这应该可以解决这个问题:
x,y在0框的左上角,大小是您想要的框的大小
您可以尝试以下方法:
相关问题 更多 >
编程相关推荐