python - 使用python旋转矩阵时出现问题

标签 python matrix

我创建了一个函数,可以成功旋转矩阵的外层。我尝试添加一个循环,以便它对矩阵的内部层执行相同的操作,但我没有任何运气。

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/

相关文章:

python - 如何获取所有数据库的列表并在 python 中对其运行查询

python - 是否可以将时间序列从单声道转换为立体声?

matlab - Matlab 内存不足 - 如何对矩阵元素进行就地运算?

c++ - 如何加快C++中2D三角矩阵的内存分配?

python - 用于快速访问的索引百万行方矩阵

c - 保存二维动态数组(矩阵)用于全局访问 c

python - 如何查看mosquitto经纪商订阅的主题

python - 如何在不更新光标的情况下读取文件?

python - 如何防止从进行系统调用的 Django 应用程序执行任意命令?

Java:将一组整数的所有可能组合放在矩阵列表中的算法