在学数学,请会高数的朋友进来看看我理解是否对
//关于矩阵的运算看看描述得是否对.//谢谢!
[CODE]
#include <stdio.h>
#include <stdlib.h>
void printA(int X[][5]); //打印矩阵
void printT(int X[][3]);
void exps(int A[][], char ch, int B[][]); //矩阵运算
void T(int A[][], int C[][]); //旋转矩阵
int main(void)
{
int A[][5]={{1,2,3,4,5},
{2,3,4,5,6},
{3,4,5,6,7}
};
int B[][5]={{1,2,3,4,5},
{2,3,4,5,6},
{3,4,5,6,7}
};
int C[5][3]={{0,0,0}};
printf("矩阵相加:\n");
exps(A,'+',B);
printA(A);
printf("矩阵相减:\n");
exps(A,'-',B);
printA(A);
printf("矩阵相乘:\n");
exps(A,'*',B);
printA(A);
printf("矩阵相除:\n");
exps(A,'/',B);
printA(A);
printf("旋转矩阵:\n");
T(A,C);
printT(C);
system("pause");
return 0;
}
//矩阵运算
void exps(int A[][5], char ch, int B[][5])
{
int i=0,j=0;
for(i=0; i<3; i++)
{
for(j=0; j<5; j++)
{
switch(ch)
{
case '+':
A[i][j]=A[i][j]+B[i][j];
break;
case '-':
A[i][j]=A[i][j]-B[i][j];
break;
case '*':
A[i][j]=A[i][j]*B[i][j];
break;
case '/':
A[i][j]=A[i][j]/B[i][j];
break;
}
}
}
}
//旋转矩阵
void T(int A[][5], int C[][3])
{
int i=0,j=0;
for(i=0; i<5; i++)
{
for(j=0; j<3; j++)
{
C[i][j]=A[j][i];
}
}
}
//打印矩阵
void printA(int X[][5])
{
int i=0,j=0;
for(i=0; i<3; i++)
{
for(j=0; j<5; j++)
{
printf("%d\t",X[i][j]);
}
printf("\n");
}
}
void printT(int X[][3])
{
int i=0,j=0;
for(i=0; i<5; i++)
{
for(j=0; j<3; j++)
{
printf("%d\t",X[i][j]);
}
printf("\n");
}
}
[/CODE]
----------------解决方案--------------------------------------------------------
建议你先去看下矩阵的乘法规则!
建议你先去看下矩阵的乘法规则! ----------------解决方案--------------------------------------------------------
无语。。。。。。。。
----------------解决方案--------------------------------------------------------
这个是线性代数吧,
矩阵的乘除法还是挺麻烦的,你这个.....
貌似不是这么算得吧
----------------解决方案--------------------------------------------------------
呵呵...我就是不知道我这般的理解对否...所以来问问...
昨晚通宵下载了一个线代的视频教程,准备恶补!
----------------解决方案--------------------------------------------------------
线代~~~
----------------解决方案--------------------------------------------------------