0

行列を乗算するアプリケーションを作成しています。これは、nxn の行列 a と b に対して意図したとおりにうまく機能します。

for(k = 0; k < n; k++) {
    for(i = 0; i < n; i++) {
        tmp = a[i][k];
        for(j = 0; j < n; j++) {
            c[i][j] = c[i][j] + tmp * b[k][j];
        }
    }
}

a が nxy で b が yxm の場合 (c が nxm であることを意味します)。上記のループが機能するように変更するにはどうすればよいですか?

ありがとう

4

1 に答える 1

3

これはうまくいくはずです:

for(k = 0; k < y; k++) {
    for(i = 0; i < n; i++) {
        tmp = a[i][k];
        for(j = 0; j < m; j++) {
            c[i][j] = c[i][j] + tmp * b[k][j];
        }
    }
}
于 2012-04-15T16:47:08.280 に答える