2014-03-26 24 views
2

我在這裏遇到了矩陣乘法的困難。矩陣乘法但具有可變維數

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的值由用戶決定。所以現在,問題是我似乎無法弄清楚如何限制變量k在這裏for循環這裏。

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

回答

1

col x row矩陣相乘row x col矩陣會給你一個row x row矩陣。所以,ij[0..row),而k[0..col)。你可以看看你的表情:

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

,並問自己:「在matrix[i][k],什麼是k的範圍內,因爲它是matrix第二個維度? 」類似的問題將有助於其他變量。