# How to Extract Matrix Elements in the Spiral Form in Python3?

## CLOCKWISE SPIRAL FORM EXTRACTION OF MATRIX ELEMENTS

Clockwise Spiral Form can be best described as:

• Let’s consider a matrix of m x n dimension, where m is the number of rows and n is the number of columns.
• Let’s take a point, the point starts from the first element (1,1).
• Then the point will move in the right direction until the end (1,n).
• From there, the point will move downwards until the last element of the matrix (m,n).
• Then, the point move towards the second column (2,n), it will not hit the first column.
• From there it will rise up to the second row (2,2), it will not touch the first row.
• This process continues until it covers all the elements.

Read more here: Spiral array model

The Clockwise Spiral Form is shown below in the image.

Spiral Matrix Python

Now, let’s take a look at the code snippet

### PROGRAM to Extract Matrix Elements in the Spiral Form in Python3 :

```# Python3 program to print the given matrix in spiral form
def spiralPrint(m,n,a):
k=0;l=0
''' k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator '''
while(k<m and l<n):
# Print the first row from
# the remaining rows
for i in range(l,n) :
print(a[k][i],end=" ")
k += 1
# Print the last column from
# the remaining columns
for i in range(k,m) :
print(a[i][n-1],end=" ")
n -= 1
# Print the last row from
# the remaining rows
if(k<m):
for i in range(n-1,(l-1),-1) :
print(a[m-1][i], end = " ")
m-=1
# Print the first column from
# the remaining columns
if(l<n):
for i in range(m - 1, k - 1, -1) :
print(a[i][l],end=" ")
l+=1

# Driver Code
R=int(input("Enter the number of rows:"))
C=int(input("Enter the number of columns:"))
a=[]
print("Enter the elements of the matrix:")
for i in range(R):
l=list(map(int,input().split(" ")))
a.append(l)
print("The elements are taken out from the matrix in the clockwise spiral direction.")
spiralPrint(R,C,a)```

OUTPUT 1:

```Enter the number of rows:3
Enter the number of columns:3
Enter the elements of the matrix:
1 2 3
4 5 6
7 8 9
The elements are taken out from the matrix in the clockwise spiral direction.
1 2 3 6 9 8 7 4 5```

OUTPUT 2:

```Enter the number of rows:4
Enter the number of columns:4
Enter the elements of the matrix:
1 2 3 4
4 5 6 7
7 8 9 1
2 3 6 4
The elements are taken out from the matrix in the clockwise spiral direction.
1 2 3 4 7 1 4 6 3 2 7 4 5 6 9 8```

So, hope this tutorial helped you to clear your doubts.