当前位置: 首页 > news >正文

矩阵的转置

对于M\times M的矩阵,使用两个指针变量,可以方便实现(i,j)处元素与(j,i)处元素交换位置。令指针Arow=&A[i][0],则Arow[j]可实现对第i行j列元素的访问。令指针Bptr=&A[0][i],则*Bptr就可以访问(0,i)处元素,然后,令Bptr+=M,就可访问同列不同行的元素。

代码实现

#define M  3
int A[3][3]={{1,2,3},{4,5,6},{7,8,9}};
void transpose(int A[M][M]);

void transpose(int A[M][M])
{
    int i,j;
    int t;
    int *Arow;
    int *Bptr;
    for(i=0;i<M;i++)
    {
        Arow=&A[i][0];
       Bptr=&A[0][i];
      for(j=0;j<i;j++)
      {
            t=Arow[j];
            Arow[j]=*Bptr;
            *Bptr=t;
            Bptr+=M;
        }
    }
}

void main()
{
    int B[M][M];
    int i,j;
    for(i=0;i<M;i++)          //把A矩阵元素存储在B矩阵中
     for(j=0;j<M;j++)
       B[i][j]=A[i][j];
    transpose(A);            //把A矩阵转置
}

运行结果

B=\begin{bmatrix} 1 & 2 & 3\\ 4& 5 & 6\\ 7& 8& 9 \end{bmatrix}          A=\begin{bmatrix} 1 & 4& 7\\ 2& 5& 8\\ 3& 6 & 9 \end{bmatrix}

相关文章:

  • 虚幻基础:蓝图常用节点
  • 76.HarmonyOS NEXT ImageItemView组件深度剖析:边界处理与高级特性(二)
  • P7634 [COCI 2010/2011 #5] HONI 题解 DP模板题
  • 深度揭秘:蓝耘 Maas 平台如何重塑深度学习格局
  • Unreal Engine 5(虚幻引擎)动画制作快捷键大全
  • 进程间通信--匿名管道
  • 【算法设计与分析】算法时间复杂度计算方法、算法时间复杂度的表示方法
  • 基于PySide6与CATIA Automation的批量截图处理系统开发实践
  • KVM安全模块生产环境配置与优化指南
  • docker composeyaml文件,什么是swap-space,内存不足硬盘来凑,--ipc=host,yaml文件、环境变量、容器报警健康检查
  • 394. 字符串解码
  • 【蓝桥杯】省赛:神奇闹钟
  • Pyecharts 输出到 html 白屏 | 解决方案来
  • 用tiptap搭建仿google-docs工具栏
  • C++和C的区别
  • CTA重建:脑血管重建,CT三维重建,三维建模 技术,实现
  • 华为重拳出击!华为重拳出击!华为重拳出击!
  • 【Java】Devops、CI/CD、jenkins
  • Linux系统之美:进程初识
  • C语言每日一练——day_8
  • 江西吉水通报一男子拒服兵役:不得考公,两年内经商、升学等受限
  • 加强战略矿产出口全链条管控工作部署会召开
  • 上海与世界|环城生态公园带是上海绿色发展新名片
  • 上海市委常委会会议暨市生态文明建设领导小组会议研究基层减负、生态环保等事项
  • 胳膊一抬就疼,炒菜都成问题?警惕这种“炎症”找上门
  • 印度杰纳布河上游两座水电站均已重新开闸