Bienvenido al blog del noroeste de Mesopotamia! Aquí hablamos de todo:
Política, Dios, ciencia y tecnología, fe, Linux, Latex, Fails,etc.
Siéntase libre de comentar los artículos!

martes, 3 de enero de 2012

[Tip + How to] Extraer filas y columnas de matrices

A veces se hace sumamente necesario extraer filas o columnas completas de matrices, sobre todo si el objetivo es escribir alguna pieza de software que desarrolle alguna tarea iterativa, pero de tal modo que no dependa de ciclos. Matlab, por ejemplo, dispone de operadores especiales (":") que permiten extraer filas y columnas completas de vectores bidimensionales.

Lamentablemente, en la TI-89/V200 no existen tales operadores... Sin embargo, de todas maneras existe una manera de extraer filas o columnas de una matriz sin la necesidad de utilizar el comando submat. Manos a la obra: Supongamos que la siguiente matriz es la matriz a la que le extraeremos las filas o columnas y está almacenada en la variable "a" de acuerdo al código:


[1,2,3;5,6,1;0,1;0]->a


Entonces, si queremos extraer la fila central, que corresponde al vector [5,6,1] se debe hacer lo siguiente:

[1,2,3;5,6,1;0,1;0][2]->a

Eso extrae la segunda o fila central. Ahora, para el caso de las columnas, lamentablemente se requiere de un paso adicional. Transposición. Manos a la obra: Supongamos de que de la misma matriz se desea extraer la columna 3, entonces:

(([1,2,3;5,6,1;0,1;0])T[3])T->a


Notar que T es el operador de transposición. Entonces, variando el coeficiente que acompaña a la matriz se pueden obtener filas y columnas completas.
De esta manera se pueden construir programas vectorizados mucho más rápidos y eficientes que no dependen de ciclos for o while.

Abrazo!

2 comentarios:

  1. Muchas gracias por el dato! justo necesitaba esta información para mi estudio =)
    Saludos!

    ResponderEliminar

Ingresa un comentario