矩阵A转置为
矩阵B,采用优化方法实现,对A矩阵,采用行指针*Arow访问同一行不同列元素,对矩阵B,采用列指针*Bptr访问相同列不同行元素。
代码实现
void transpose(int a34,int b43);
void transpose(int a34,int b43)
{
int i,j;
int *Arow;
int *Bptr;
for(i=0;i<3;i++)
{
Arow=&ai0;
Bptr=&b0i;
for(j=0;j<4;j++)
{
*Bptr=Arowj;
Bptr+=3;
}
}
}
void main()
{
int a34,b43;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
aij=i+j+1;
transpose(a,b);
}
运行结果
一般方法
void transpose(int a34,int b43);
void transpose(int a34,int b43)
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
bji=aij;
}
void main()
{
int a34,b43;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
aij=i+j+3+4;
transpose(a,b);
}