2X3矩阵转置3X2问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:44:39
做一个2X3转置3X2的矩阵。代码如下。输出结果应该是转置后的b矩阵为什么输出的是没转置的矩阵。还有矩阵转置到底是干什么。void main()
{
int a[2][3],b[3][2],i,j;
printf("Input 'a' Matrix:(2x3)");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]); printf("Input 'b' Matrix:(3x2)");
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&b[i][j]); b[i][j]=a[i][j];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
printf("%d",b[i][j]);getch();
}

for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&b[i][j]); b[i][j]=a[i][j];
改为:
for(i=0;i<3;i++)
for(j=0;j<2;j++)
b[i][j]=a[j][i];
没有必要再输入矩阵b了。还有就是a[i][j]改为a[j][i]。
矩阵的转置有很多用处,最明显的就是书写方便了。如一个列向量可以写成一个行向量的转置,另外就是对任一矩阵A,A'A是一对称矩阵,这在证明某些定理时十分有用。

是b[i][j]=a[j][i]吧