矩阵旋转90度,180度,270度
程序员文章站
2022-05-17 10:09:33
...
将矩阵逆时针旋转90度,180度,270度
矩阵旋转的关键在于构建一个反对角矩阵B, 形如:
In [707]: B
Out[707]:
array([[0, 0, 1],
[0, 1, 0],
[1, 0, 0]])
假设目标矩阵为A:
In [708]: A=np.arange(1,10).reshape(3,3)
In [709]: A
Out[709]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
1、将A逆时针旋转90度:(AB).T
In [710]: np.dot(A,B).T
Out[710]:
array([[3, 6, 9],
[2, 5, 8],
[1, 4, 7]])
2、将A逆时针旋转180度:(BAB)
In [711]: np.dot(B,np.dot(A,B))
Out[711]:
array([[9, 8, 7],
[6, 5, 4],
[3, 2, 1]])
3、将矩阵逆时针旋转270度:(A.T)B
In [712]: np.dot(A.T,B)
Out[712]:
array([[7, 4, 1],
[8, 5, 2],
[9, 6, 3]])
注,BA,即A左乘B,是将A的行进行上下交换
AB,A右乘B,是对A的列进行左右交换
构建B:
B=np.zeros_like(A)
for i in range(len(A)):
B[0][len(A)-1-i]=1
转载于:https://my.oschina.net/lCQ3FC3/blog/867882
上一篇: Vue3使用vuedraggable插件
下一篇: 揭秘:唐朝的杨贵妃到底算不算胖?