s3Eva_IIT2015_T3 funciones matrices rotar, extraer

Ejercicio: 3Eva_IIT2015_T3 funciones matrices rotar, extraer

Propuesta de solución en Python

Tarea: Integrar con tema 4

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIT2015_T3 funciones matrices rotar, extraer
# propuesta: edelros@espol.edu.ec
# version con lazos y condicionales. 
# tarea: simplificar lazos con 'for'

import numpy as np

# Tema 3 a)
def rotando(matriz,k):

    #cuenta rotaciones
    cuenta = 0    
    while not(cuenta>=k):
        n,m = matriz.shape 
        tabla = numpy.zeros(shape=(m,n),dtype=int)

        # inicia rotación
        i = 0 
        while not(i>=n):
            j = 0
            while not(j>=m):
                f = j
                c = (n-1)-i
                tabla[f,c] = matriz[i,j]
                j = j + 1
            i = i + 1
        
        matriz = np.copy(tabla)
        cuenta = cuenta + 1
    return(matriz)

# Tema 3 b) funcion para extraer una esquina 
# de tamaño t de una matriz
# k=0 ;esquina superior izquierda 
# k=1 ;esquina superior derecha
# k=3 ;esquina inferior izquierda 
# k=2 ;esquina inferior derecha

def extraeresquina(matriz,k,t):
    n,m = matriz.shape
    esquina = np.zeros(shape=(t,t), dtype=int)
    i = 0
    while not(i>=t):
        j = 0
        while not(j>=t):
            if (k==0):
                f = i
                c = j
            if (k==1):
                f = i
                c = (m-t)+j
            if (k==2):
                f = (n-t)+i
                c = (m-t)+j
            if (k==3):
                f = (n-t)+i
                c = j
            esquina[i,j]=matriz[f,c]
            j = j+1
        i = i+1   
    return(esquina)