根据数学定义可以知道,对于矩阵P,其第m行n列上的元素,是其转置矩阵的n行m列元素。
从此可以得出程序如下:
#define M 10#define N 5
//以10行5列为例,可以任意修改。
void convert(int a[M][N], int b[N][M])//求a的转置矩阵,结果存于b中。
{
int i,j
for(i = 0 i <M i ++)
for(j = 0 j < N j ++)
b[j][i] = a[i][j]//转置运算。
}
#include "stdio.h"void main()
{
void zhuan(int array[2][3],int b[3][2])
int array[2][3],b[3][2]int i,j
printf("input:\n")
for(i=0i<2i++)
for(j=0j<3j++)
{
scanf("%d",&array[i][j])
}
printf("\n")
zhuan(array,b)
printf("\n")
for(i=0i<3i++)
{
for(j=0j<2j++)
printf("%d",b[i][j])
printf("\n")
}
}
void zhuan(int array[2][3],int b[3][2]) //转置函数逻辑错误,没那么麻烦,直接转就是了!
{
int i,j
for(i=0i<2i++)
for(j=0j<3j++)
{
b[j][i]=array[i][j]
}
}
1、打开vs2015,新建一个Windows Form窗体程序或者控制台都可以。
2、 定义一个名为array1的数组并赋值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }下面求该矩阵转置矩阵。
3、右键解决方案下的项目名,添加-类,创建一个名为“turnzhi”的类。
4、转置类的代码。
5、在主程序调用转置类,用两个for循坏将转置后的数组(array)输出来;并将结果显示在textbox中。
6、转置后的结果正确,这样我们就实现了c#矩阵的转置运算。