行列の積の求めかた
行列の積を求めるプログラムを組んだのですがうまく表示されないです。
x=1,2,3
4,5,6
y=1,5
5,3
8,1
としの行列の積です。
#include <stdio.h>
int main(void)
{
int i,j;
int ma[2][3] = {{1,2,3},{4,5,6}};
int mb[3][2] = {{1,5},{5,3},{8,1}};
int mc[2][2] = {0};
for(i=0;i<2;i++)
for(j=0;j<3;j++)
mc[i][i] += ma[i][j]*mb[j][i];
mc[1-i][i] += ma[1-i][j]*mb[j][i];
for(i=0;i<2;i++){
for(j=0;j<2;j++)
printf("%3d",mc[i][j]);
putchar('\n');
}
return(0);
}
結果は↓のようになります。
38 0
0 41
まだプログラミングをはじめて日が浅いので基本てきなとこが抜けてる
かもしれません。よろしくお願いします。
お礼
理解できました! >右から掛けると別の作用になるのでそれもお試しあれ これは元の行列を転置したものになるのですね。 丁寧に解説してくださり、ありがとうございました!