python矩阵顺时针旋转
时间: 2023-11-07 16:04:45 浏览: 153
在Python中,可以使用以下代码实现矩阵的顺时针旋转:
```python
def rotate_matrix(matrix):
n = len(matrix)
for i in range(n // 2):
for j in range(i, n - i - 1):
temp = matrix[i][j]
matrix[i][j] = matrix[n - j - 1][i]
matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]
matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]
matrix[j][n - i - 1] = temp
return matrix
```
以上代码中,`rotate_matrix`函数接受一个二维矩阵作为输入,然后通过交换矩阵的元素实现顺时针旋转。具体实现是通过遍历矩阵的每个层级,然后在每个层级上进行元素交换。
相关问题
输入一个 n 行 m 列的数字矩阵 A ,将数字矩阵顺时针旋转 90 度后输出。 输入格式 第一行,两个整数 n 和 m 。 接下来 n 行,每行 m 个整数,代表数字矩阵。 输出格式 输出一个数字矩阵,代表输入矩阵顺时针旋转 90 度的结果。c++
下面是一个 Python 程序,实现了将输入的 n 行 m 列的数字矩阵顺时针旋转 90 度的功能:
```
def rotate_matrix(n, m, matrix):
# 创建新矩阵
new_matrix = [[0 for i in range(n)] for j in range(m)]
for i in range(n):
for j in range(m):
# 顺时针旋转 90 度
new_matrix[j][n-i-1] = matrix[i][j]
return new_matrix
n, m = map(int, input().split())
matrix = []
for i in range(n):
matrix.append(list(map(int, input().split())))
rotated_matrix = rotate_matrix(n, m, matrix)
for row in rotated_matrix:
print(" ".join(map(str, row)))
```
上述程序中,顺时针旋转 90 度的操作就是 new_matrix[j][n-i-1] = matrix[i][j] 。其中,new_matrix 为新矩阵, matrix 为原始矩阵。
python矩阵旋转
以下是两种Python矩阵旋转的例子:
1.顺时针旋转90度
```python
a = [[1,2,3],[4,5,6]]
n = len(a)
m = len(a[0])
print('初始矩阵')
for i in range(n):
for j in range(m):
print(a[i][j],end=' ')
print()
print('顺时针旋转90度')
a.reverse() # 将矩阵中的元素按行逆序
# 改变矩阵的形状
for i in range(m):
for j in range(n):
print(a[j][i],end=' ')
print()
```
2.顺时针旋转180度
```python
a = [[1,2,3],[4,5,6]]
n = len(a)
m = len(a[0])
print('初始矩阵')
for i in range(n):
for j in range(m):
print(a[i][j],end=' ')
print()
print('顺时针旋转180度')
a.reverse() # 将矩阵中的元素按行逆序
# 按列倒序输出
for i in range(n):
for j in range(m):
print(a[i].pop(),end=' ')
print()
```
阅读全文