# Matrix Rotation Clockwise by shifting one element at a time in Python 3

Matrix Rotation Clockwise is the rotation of a given matrix in the clockwise direction. Here, in this method, the elements of the matrix are shifted by one place in order to achieve the rotated matrix.

```                4 8 7
Let Matrix, A = 6 7 5
3 2 6```

After Rotating the Matrix,

```    6 4 8
A = 3 7 7
2 6 5```

The image below shows the number of cycles it takes to rotate the matrix in the given method. Rotation matrix

Let’s take a look at the code snippet:

PROGRAM:

```def rotateMatrix(mat): #clockwise rotation of matrix where each element is shifted by one place
if not len(mat):
return
top = 0
bottom = len(mat)-1
left = 0
right = len(mat)-1
while(left < right and top < bottom):
prev = mat[top+1][left]
for i in range(left, right+1):
curr = mat[top][i]
mat[top][i] = prev
prev = curr
top += 1
for i in range(top, bottom+1):
curr = mat[i][right]
mat[i][right] = prev
prev = curr
right -= 1
for i in range(right, left-1, -1):
curr = mat[bottom][i]
mat[bottom][i] = prev
prev = curr
bottom -= 1
for i in range(bottom, top-1, -1):
curr = mat[i][left]
mat[i][left] = prev
prev = curr
left += 1
return mat
n=int(input("Enter Number of Rows of Square Matrix:"))
print("Enter Matrix Elements:")
matrix=[]
for i in range(n):
l=[]
for j in range(n):
x=int(input())
l.append(x)
matrix.append(l)
print("The entered Matrix is:")
for i in range(n):
for j in range(n):
print(matrix[i][j],end=" ")
print()
print("The Matrix after rotation:")
matrix=rotateMatrix(matrix)
for i in range(n):
for j in range(n):
print(matrix[i][j],end=" ")
print()```

OUTPUT 1:

```Enter Number of Rows of Square Matrix:3
Enter Matrix Elements:
4
5
7
8
9
6
4
3
2
The entered Matrix is:
4 5 7
8 9 6
4 3 2
The Matrix after rotation:
8 4 5
4 9 7
3 2 6```

OUTPUT 2:

```Enter Number of Rows of Square Matrix:4
Enter Matrix Elements:
4
5
8
7
6
2
1
5
6
4
5
3
2
1
8
9
The entered Matrix is:
4 5 8 7
6 2 1 5
6 4 5 3
2 1 8 9
The Matrix after rotation:
6 4 5 8
6 4 2 7
2 5 1 5
1 8 9 3```