题目:
代码如下:
#coding=utf-8
from numpy import *
import numpy as np
def rotate(matrix):
a,b=0,0
c,d=matrix.shape[0]-1,matrix.shape[1]-1
while (a < c):
rotateEdge(matrix, a, b, c, d)
a+=1
b+=1
c-=1
d-=1
def rotateEdge(m,a,b,c,d):
times=d-b
for i in range(0,times):
tmp=m[a,b+i]
m[a,b+i]=m[c-i,b]
m[c - i, b]=m[c,d-i]
m[c, d - i]=m[a+i,d]
m[a+i,d]=tmp
if __name__=="__main__":
matrix=np.arange(1,17).reshape((4,4)) # 4行4列,1到16
print(matrix)
rotate(matrix)
print("="*20)
print(matrix)
结果如下: