我这里的矩阵乘法有困难。
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];
}
}
}
答案 0 :(得分:1)
将row x col
矩阵乘以col x row
矩阵会得到row x row
矩阵。因此,i
和j
为[0..row)
,k
为[0..col)
。你可以看看你的表达:
matrix3[i][j] += matrix[i][k]*trans[k][j];
并问问自己:“在matrix[i][k]
,k
的范围是什么,因为它是matrix
的第二个维度?”类似的问题对其他问题有帮助变量