C での行列乗算の実装
おすすめ投稿:【C言語】 C言語インデックス
a. Github
#include <stdio.h>
#define l 3
#define m 3
#define n 3
int main(void) {
/* x[a][b] has a rows, b columns */
int A[l][m] = { { 1,3,2 }, { 7,6,3 }, { 3,0,3 } };
int B[m][n] = { { 2,1,2 }, { 7,8,1 }, { 5,5,1 } };
int C[l][n]; // C = A ⅹ B
int i, j, k;
for(i = 0; i < l; i++)
for(j = 0; j < n; j++){
C[i][j] = 0;
for(k = 0; k < m; k++)
C[i][j] += A[i][k] * B[k][j];
}
for(i = 0; i < 3; i++){
for(j = 0; j < n; j++)
printf("%d\t", C[i][j]);
printf("\n");
}
return 0;
}
**行列乗算 : * ※行列 X の i 行 j 列の要素を X[i][j] と表記します。 A ∈ ℝl×m、B ∈ ℝm×n、C ∈ ℝl×n、および C = A × B の場合、次のことが当てはまります。
入力: 13.07.11 21:52