定义满模糊的,不懂为什么一定要用乘法去做?
如果只是要特定的某行 某列 变成0
针对特定的column 跑一个loop 把该行变成0
针对特定的row 跑一个loop 把该行变成0
// column 就是你想要清成0的那一行
for(int i = 0; i < 矩阵高度 ; i++){
arr[i][column] = 0;
}
// row 就是你想要清成0的那一列
for(int j = 0; j < 矩阵宽度 ; j++){
arr[row][j] = 0;
}
如果硬要用矩阵乘法,
那就是取单位矩阵,对应的行数或列数设成0,再做矩阵乘法。
只要注意矩阵的维度要能和原始输入矩阵A衔接即可。
https://i.imgur.com/sAZ59d9.jpeg
例如: 对一个3x3的矩阵,把中间那行 和 中间那列都清成0
A = [ 1, 2, 3]
[ 4, 5, 6]
[ 7, 8, 9]
[1, 0, 0] [1, 2, 3] [1, 2, 3]
[0, 0, 0] * [4, 5, 6] = [0, 0, 0]
[0, 0, 1] [7, 8, 9] [7, 8, 9]
[1, 2, 3] [1, 0, 0] [1, 0, 3]
[0, 0, 0] * [0, 0, 0] = [0, 0, 0]
[7, 8, 9] [0, 0, 1] [7, 0, 9]
※ 引述《rtes (unbutu)》之铭言:
: 大家好,小弟请教个问题
: 有1 二维阵列 如下 为L[4,9] 阵列
: 2, 7,51,32,63,12,66, 79, 18
: 1,15,51,96,77,12,72, 885, 96
: 57,85, 0,12, 0,12,52, 752, 13
: 11,41,51,32,81,32,0, 15, 32
: 透过一transnform rule F(L[4,9]
: 输出如下矩阵 0[4,9]
: 2, 7,51,32,63,12, 0, 79, 18
: 1,15,51,96,77,12, 0, 885, 96
: 0, 0, 0, 0, 0, 0, 0, 0, 0 0
: 11,41,51,32,81,32,0, 15, 32
: 问如何实作Transform rule?
: 看起来是想将第7行与第3列变成0
: 我规划乘一个9*9 矩阵去转换
: 第7行变成0 我会
: 但第3列变成0,要如何维持其他列的值不变? 想不太出来
: 可否请大家给我一些想法意见
: 谢谢大家