Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将两个4x4矩阵相乘,写成两个16元素数组?_Arrays_Matrix_Pseudocode_Matrix Multiplication - Fatal编程技术网

Arrays 如何将两个4x4矩阵相乘,写成两个16元素数组?

Arrays 如何将两个4x4矩阵相乘,写成两个16元素数组?,arrays,matrix,pseudocode,matrix-multiplication,Arrays,Matrix,Pseudocode,Matrix Multiplication,我需要一个4x4矩阵,如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 表示为如下所示的数组: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 如何将两个这样的矩阵相乘?几天来,我一直在为如何完成这项工作而苦苦挣扎。我想这需要三个

我需要一个4x4矩阵,如下所示:

1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
表示为如下所示的数组:

1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
如何将两个这样的矩阵相乘?几天来,我一直在为如何完成这项工作而苦苦挣扎。我想这需要三个for循环?也许两个?他们会去4号还是16号?一些伪代码将不胜感激:

我想我做到了

结果=A*B:

for(var k=0; k<=12; k+=4){
    for(var i=0; i<4; i++){
        for (var j=0, bCount=0; j<4; j++, bCount+=4){
            result[k+i] += A[k+j%4] * B[bCount+i%4];
        }
    }
}
我想我做到了

结果=A*B:

for(var k=0; k<=12; k+=4){
    for(var i=0; i<4; i++){
        for (var j=0, bCount=0; j<4; j++, bCount+=4){
            result[k+i] += A[k+j%4] * B[bCount+i%4];
        }
    }
}

以防万一有人来访,我已经实现了这一点,它确实起了作用。谢谢谢谢,虽然我不知道为什么会有%4,但这很有效。如果不考虑这些因素,我想会得到相同的结果,因为我和j永远不会达到4。只是为了防止其他人路过并产生疑问,我已经实现了这一点,它确实起到了作用。谢谢谢谢,虽然我不知道为什么会有%4,但这很有效。如果不考虑这些因素,我想会得到相同的结果,因为我和j永远不会达到4。