将两个矩阵乘以不同的维度

时间:2012-04-15 16:43:27

标签: c loops matrix matrix-multiplication

我正在编写一个乘法矩阵的应用程序。这非常适用于矩阵a和b,它们是nxn:

for(k = 0; k < n; k++) {
    for(i = 0; i < n; i++) {
        tmp = a[i][k];
        for(j = 0; j < n; j++) {
            c[i][j] = c[i][j] + tmp * b[k][j];
        }
    }
}

如果a是nxy且b是yxm(暗示c是nxm)。如何修改上述循环?

由于

1 个答案:

答案 0 :(得分:3)

这应该有效:

for(k = 0; k < y; k++) {
    for(i = 0; i < n; i++) {
        tmp = a[i][k];
        for(j = 0; j < m; j++) {
            c[i][j] = c[i][j] + tmp * b[k][j];
        }
    }
}