矩阵乘法,但具有可变维度

时间:2014-03-26 20:47:37

标签: matrix-multiplication

我这里的矩阵乘法有困难。

for(i=0;i<row;i++){ /* matrix multiplication process */
    for(j=0;j<col;j++){
        matrix3[i][j]=0;

问题出在这一部分就在这里。关于矩阵trans [col] [row]的事情是它的矩阵[row] [col]但是转置了。变量row和col的值由用户确定。所以现在,问题是我似乎无法弄清楚如何在这个for循环中限制变量k。

        for(k=0;k<row;k++){ /* summation and multiplication of elements */
            matrix3[i][j] += matrix[i][k]*trans[k][j];
        }
    }
}

1 个答案:

答案 0 :(得分:1)

row x col矩阵乘以col x row矩阵会得到row x row矩阵。因此,ij[0..row)k[0..col)。你可以看看你的表达:

            matrix3[i][j] += matrix[i][k]*trans[k][j];

并问问自己:“在matrix[i][k]k的范围是什么,因为它是matrix的第二个维度?”类似的问题对其他问题有帮助变量