De matriz a vector en MATLAB

Escrito por Joe Friedman ; última actualización: February 01, 2018
Thinkstock/Comstock/Getty Images

El álgebra lineal es la rama de las matemáticas que trata primariamente con matrices, una estructura rectangular de filas y columnas de números. Un vector es una matriz con una sola fila o una sola columna. MATLAB es un software matemático hecho pensando en el álgebra lineal. Si tienes una matriz en MATLAB y deseas convertirla a una sola fila o columna, es decir, a un vector, existen varios métodos para lograrlo.

Método de reformular la función

Una de las funciones incorporadas del MATLAB es el comando "reformular" (reshape en inglés), que se aplica a una matriz y la reformula en una nueva con un nuevo número de filas y columnas que tú especificas. Para probar esta función, define la matriz "A" con tres filas y tres columnas utilizando el siguiente código:

A = [1 2 3;4 5 6; 7 8 9]

Para reformular "A" en un vector de una sola fila "1 2 3 4 5 6 7 8 9", escribe este código:

reshape(A',1,9).

Reformular en dos pasos

A veces el resultado que el usuario desea se puede (o se debe) obtener en más de un paso. Continuando con el mismo ejemplo, el código

(A(:))'

reformula la matriz en un sólo vector de una fila "1 4 7 2 5 8 3 6 9", utilizando el orden columna por columna en lugar de fila por fila. Para luego volver a ordenar los números de forma secuencial y obtener el mismo resultado que en la sección anterior, usa este código:

sort(ans)

Otro método de formulación

Otro método de usar el MATLAB para esta aplicación es extraer las filas una por una y luego colocarlas todas juntas en un único vector.

a=A(1,:) b=A(2,:) c=A(3,:) vector = [a b c]

Este código extrae la primera fila de la matriz "A" y la llama "a". Hace lo mismo con la segunda y la tercera fila, llamándolas "b" y "c" respectivamente. Por último, coloca las respuestas correctas una detrás de la otra dentro de un nuevo vector llamado "vector".

Método del lazo

Un cuarto método para reorganizar una matriz en un vector es usar un comando de estructura de lazo que escoge cada valor uno por uno y los inserta en un nuevo vector fila:

for i=1:9 B(1,i) = A(i) end sort(B)

Este código realiza la vuelta 9 veces y asigna el valor i-ésimo de "A" al valor de columna "i-ésimo" de la primera fila de la nueva matriz "B". Finalmente, muestra los valores de forma secuencial. El resultado final será el mismo que el obtenido con los métodos anteriores.

×