画像処理入門 >
行列計算 >
行列の掛け算
行列の掛け算
行列の掛け算
サンプルプログラム
プログラムはこちら
/*
matOut : 計算結果
matA : 入力行列A
matARows : 入力行列Aの行数
matACols : 入力行列Aの列数
matB : 入力行列B
matBRows : 入力行列Bの行数
matBCols : 入力行列Bの列数
*/
void multiplication(double **matOut, double **matA, int matARows, int matACols, double **matB, int matBRows, int matBCols){
int i, j, k;
if( matACols != matBRows ){
printf("計算できません\n");
return;
}
for(i = 0; i < matARows; ++i){
for(j = 0; j < matBCols; ++j){
matOut[i][j] = 0.0;
for(k = 0; k < matACols; ++k){
matOut[i][j] += matA[i][k] * matB[k][j];
}
}
}
}