gpt4 book ai didi

c - 如何在 C 中将矩阵乘以矩阵?为什么这不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:18 26 4
gpt4 key购买 nike

这是我正在处理的程序。任务是将 2 个矩阵相乘。矩阵 A 中的列数与矩阵 B 中的行数相同。下面是对两个矩阵包含的内容以及预期结果的注释。计算结果就是我的程序所做的。

void matrixMul(Matrix A, Matrix B, int ARows, int ACols, int BCols, Matrix C){
int k;
int l;
int j;
for(j=0; j < ARows; j++) {
for (l=0; l < BCols; l++) {
for (k=0; k < ACols; k++) {
C[j][l] += A[j][k] * B[k][l];
}/*for*/
}/*for*/
}/*for*/
}/*matrixMul*/


/*This is what the output should be....
==> Computing 0.0 1.0 2.0 0.0 1.0 2.0
1.0 2.0 3.0 * 3.0 4.0 5.0
2.0 3.0 4.0 6.0 7.0 8.0

==> Expected 15.0 18.0 21.0
24.0 30.0 36.0
33.0 42.0 51.0

==> Computed 15.0 20.0 25.0
28.0 36.0 44.0
41.0 52.0 63.0 */

最佳答案

你的方程看起来是正确的。我只能猜测 C 在计算之前没有初始化为全零。我会这样做(只是为了确定):

for(j=0; j < ARows; j++) {
for (l=0; l < BCols; l++) {
C[j][l] = 0; // <- Init C to zero
for (k=0; k < ACols; k++) {
C[j][l] += A[j][k] * B[k][l];
}
}
}

关于c - 如何在 C 中将矩阵乘以矩阵?为什么这不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26686001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com