矩阵相关练习

简介: 矩阵相关练习

目录

矩阵相加

矩阵相乘

矩阵顺时针旋转90°

1.矩阵相加

分析

int main()
{
  int a[3][4] = { {1,2,3,4},{3,4,5,6},{5,6,7,8} };
  int b[3][4] = { {1,2,3},{4,5},{6} };
  int c[3][4] = { 0 };
  int i, j;
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 4; j++)
    {
      c[i][j] = a[i][j] + b[i][j];
    }
  }
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 4; j++)
    {
      printf("%-4d", c[i][j]);
    }
    printf("\n");
  }
  return 0;
}

矩阵的乘法

分析

int main()
{
  int a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
  int b[3][2] = { {1,2},{4,5},{7,8} };
  int c[3][2] = { 0 };
  int i, j, k;
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 2; j++)
    {
      for (k = 0; k < 3; k++)
      {
        c[i][j] += a[i][k] * b[k][j];
      }
    }
  }
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 2; j++)
    {
      printf("%-5d", c[i][j]);
    }
    printf("\n");
  }
  return 0;
}

矩阵实现顺时针旋转90°

. 旋转图像


给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。


你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。


示例 1:




输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

输出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:




输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]

输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

示例 3:


输入:matrix = [[1]]

输出:[[1]]

示例 4:


输入:matrix = [[1,2],[3,4]]

输出:[[3,1],[4,2]]

分析

int main()
{
  int arr[10][10] = { 0 };
  int i = 0;
  int j = 0;
  int n;
  scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
      for (j = 0; j < n; j++)
      {
        scanf("%d", &arr[i][j]);
      }
  }
    int b[10][10] = { 0 };
    for (i = 0; i < n; i++)
    {
      for (j = 0; j < n; j++)
      {
         b[i][j] = arr[i][j];
      }
    }
    for(i=0;i<n;i++)
    {
      for (j = 0; j < n; j++)
      {
        arr[j][n - 1 - i]=b[i][j];
      }
    }
    for (i = 0; i < n; i++)
    {
      for (j = 0; j < n; j++)
      {
        printf("%d ", arr[i][j]);
      }
      printf("\n");
    }
  return 0;
}

同理若逆时针旋转思想也是类似的,有兴趣的可以去做做逆时针旋转90°

相关文章
|
12天前
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
9 0
|
10月前
|
算法 Python
线代矩阵问题
线代矩阵问题
78 0
|
10月前
|
移动开发
|
10月前
|
移动开发
半正定矩阵和正定矩阵的一些理解和补充
半正定矩阵和正定矩阵的一些理解和补充
1110 0
|
人工智能 开发者
矩阵的秩 | 学习笔记
快速学习矩阵的秩
181 0
矩阵的秩 | 学习笔记
|
人工智能 开发者
矩阵的几种变换 | 学习笔记
快速学习矩阵的几种变换
520 0
矩阵的几种变换 | 学习笔记
|
Windows
详解扬氏矩阵
详解扬氏矩阵
132 0
详解扬氏矩阵
20天刷题计划-542. 01 矩阵
给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。