我创建了一个函数,可以成功旋转矩阵的外层。我尝试添加一个循环,以便它对矩阵的内部层执行相同的操作,但我没有任何运气。
def rotateMatrix(mat,size):
temp = []
for i in range(size):
temp.append(mat[0][i])
for i in range(size-1):
mat[0][i] = mat[size-(1+i)][0]
mat[size-(1+i)][0] = mat[size-1][size-(1+i)]
mat[size-1][size-(1+i)] = mat[0+i][size-1]
mat[0+i][size-1] = temp[i]
return mat
有没有办法可以稍微改变一下以允许内部层旋转?
我尝试在不使用任何库或内置函数的情况下执行此操作。
最佳答案
这会将矩阵旋转 90 度。
请注意,旋转并未就地完成,而是为结果分配了另一个矩阵。
def rotate_matrix(matrix):
size = len(matrix)
# init rotated matrix with None elements
rotated_matrix = [[None]*size for _ in range(size)]
for i in xrange(size):
for j in xrange(size):
rotated_matrix[j][size-1-i] = matrix[i][j]
return rotated_matrix
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_matrix = rotate_matrix(matrix)
print rotated_matrix
>> [[7, 4, 1],
>> [8, 5, 2],
>> [9, 6, 3]]
关于python - 使用python旋转矩阵时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35389961/