RSS Feed

Rotating clockwise 90° a Matrix

0

July 17, 2023 by zehra kaya

Create a matrix

Numpy is used just for creating a matrix with n rows and m columns to make it easy at the beginning.

import numpy as np

n = int(input("number of rows:"))
m = int(input("number of colmuns:"))

matrix = np.arange(n*m).reshape(n, m)
matrix

Transpose the matrix

Numpy

matrix= np.transpose(matrix)

Without Numpy

rows = len(matrix)
cols = len(matrix[0])

transposed_matrix = []
for i in range(cols):
    new_row = []
    for j in range(rows):
        new_row.append(matrix[j][i])
    transposed_matrix.append(new_row)

matrix = transposed_matrix
matrix

List comprehension

matrix = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]

Reverse the matrix

Numpy

matrix = matrix[:, ::-1]
matrix

Without Numpy

reversed_matrix = []
for row in transposed_matrix:
    reversed_row = row[::-1]  
    reversed_matrix.append(reversed_row)
matrix = reversed_matrix
matrix

List comprehension

matrix= [row[::-1]  for row in matrix ]
matrix

Create a matrix

Numpy is used just for creating a matrix with n rows and m columns to make it easy at the beginning.

import numpy as np

n = int(input("number of rows:"))
m = int(input("number of colmuns:"))

matrix = np.arange(n*m).reshape(n, m)
matrix

Transpose the matrix

Numpy

matrix= np.transpose(matrix)

Without Numpy

rows = len(matrix)
cols = len(matrix[0])

transposed_matrix = []
for i in range(cols):
    new_row = []
    for j in range(rows):
        new_row.append(matrix[j][i])
    transposed_matrix.append(new_row)

matrix = transposed_matrix
matrix

List comprehension

matrix = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]

Reverse the matrix

Numpy

matrix = matrix[:, ::-1]
matrix

Without Numpy

reversed_matrix = []
for row in transposed_matrix:
    reversed_row = row[::-1]  
    reversed_matrix.append(reversed_row)
matrix = reversed_matrix
matrix

List comprehension

matrix= [row[::-1]  for row in matrix ]
matrix

0 comments »

Leave a Reply

Your email address will not be published. Required fields are marked *