已知A是一个3╳4的矩阵,B是一个4╳5的矩阵,编程求A╳B得到的新矩阵C,并输出C矩阵

2024-12-03 01:19:36
推荐回答(1个)
回答1:

问题1:
问:为啥数组c是3行5列
答:根据矩阵乘法定义,一个m╳r的矩阵A和一个r╳n的矩阵B的乘积矩阵C是一个m╳n矩阵

问:这里是怎么变过来的 也就是我还是不明白数组a*数组b是什么样的进行的
答:根据矩阵乘法定义,矩阵C中第i行第j列位置的元素cij等于矩A阵中第i行元素ai1,ai2,...,air与矩阵B中第j列元素b1j,b2j,...,brj各对应元素的乘积,即cij=ai1bij+ai2b2j+...+airbrj
注意楼主的题中,m=3,r=4,n=5,i=0,1,2,3;j=0,1,2,3,4
这就表现在这里: for(k=0;k<4;k++)
c[i][j]+=a[i][k]*b[k][j]; 这里表示的是C中第i+1行第j+1列的元素

问题2:
问:中间用K值去代替,原因是什么 是因为这样更简便么 ?
答:中间的k是为了表示以下r项和ai1bij+ai2b2j+...+airbrj中的第k+1项aikbkj,对k循环求和就可以得到cij

问:如果是的话那下次两个值不同该怎么办?
答:矩阵乘法定义规定cij=ai1bij+ai2b2j+...+airbrj,因此下次两个值也一定是一样的,若不一样则A与B不可乘