Tip:
Highlight text to annotate it
X
En este vídeo vamos a ver cómo crear vectores y matrices dentro de Matlab
los vectores y las matrices son conceptos matemáticos y lo que vamos a ver es cómo manejarlos dentro de Matlab y de Octave.
Para este video hacen falta unos prerrequisitos es un video opcional porque es necesario conocer los conceptos matemáticos de matriz y de vector,
si nunca has visto estos conceptos en matemáticas puedes saltar este vídeo sin problemas, porque
es un video opcional no es necesario para seguir el resto del curso,
pero sí los ha visto y conoces que son,
puedes continuar para ver cómo usarlos dentro de Matlab y de Octave.
Aquí vemos dos vectores y una matriz tal y como se representan en matemáticas,
por ejemplo aquí tenemos un vector fila
eso es un vector fila, ¿por qué se llama vector fila?
Porque estan puestos todos los números del vector en una única fila.
Los vectores pueden ser filas o columnas, por ejemplo, aquí tenemos un vector columna
y el tratamiento en Octave es ligeramente diferente para vectores filas y columnas.
Igual que tenemos vectores podemos tener matrices, por ejemplo, aquí tenemos una matriz que tiene tres filas y cinco columnas.
Lo que vamos a ver este vídeo, es cómo generar este tipo de estructuras dentro de Octave y como manejarlas.
En realidad, en Octave y Matlab, se manejan siemprepor defecto matrices,
de hecho, el nombre Matlab viene de laboratorio de matrices,
muchas personas piensan que es laboratorio de matemáticas pero Mat viene de matriz, no de matemáticas.
De este modo, los números, los escalares, en realidad, internamente en Matlab y en Octave,
son como una matriz que tiene una única fila y una única columna.
Una matriz de una fila y una columna es algo raro, es casi absurdo.
Pero la manera en que esta diseñado Matlab, hace que sea más sencillo tratar los números como matrices de este tipo.
Las matrices suelen trabajar elemento a elemento, sí logramos hacer que nuestro programa use matrices
y que funcione con matrices, por ejemplo una función que acepte una matriz y devuelva una matriz,
nuestro programa va a ser más rápido.
Esta técnica, de intentar transformar nuestro programa para que funcione con matrices
se conoce como vectorización, que la veremos con más detalle en un video futuro.
Venga vamos a empezar a ver ejemplos de cómo crear matrices y vectores con Matlab.
Fijaos en un detalle:
En matemáticas para delimitar un vector para poner el comienzo y final de un vector, usamos paréntesis.
pero muy importante, en Octave y en Matlab se usan corchetes,
siempre corchetes
nunca paréntesis, paréntesis nunca.
Vemos aquí un ejemplo, esto es como crear un vector fila, vamos a verlo en Octave.
Entonces estoy aquí en la línea de comandos, voy a crear un vector, lo voy a llamar a minúscula,
y abro un corchete pulso la tecla Alt Gr, que la tenéis a la derecha de la barra espaciadora,
y corchetes que está a la derecha la tecla P en los teclados en español,
Entonces, abro un corchete y empiezo a poner números ¿no?, pues 1 4 5 6 y 1 otra vez
por ejemplo
y ahora cierro el corchete, fijaos que al cerrar el corchete se resalta el corchete inicial
para decirme a cual corresponde este corchete,
y le doy a intro
aquí vemos
que el vector eran poco largo, se ha ido un poco por el borde la quinta columna
pero si nos fijamos en el Workspace pues vemos
que aparece ahí entre corchetes un vector.
Entonces voy a poner esto un poco más grande para que se vea mejor.
Eso es un vector.
Igual que hemos usado espacios para separar los elementos de un vector, podemos usar
comas es lo mismo.
Voy a escribir otro vector que sea exactamente igual "1"
pero usando comas "1 4 5 6 y 1"
No podemos mezclar comas y espacios para separar elementos dentro del mismo
vector, o usamos comas, o usamos espacios,
pero sí podemos usar espacios como ejemplo cómo estoy usando yo aquí.
Esto es un espacio.
¿Para qué lo estoy usando? Simplemente para que se lea mejor el vector,
pero esto no significa que aquí hay un elemento más, los elementos se separan
con comas. Vamos a verlo.
Ahí tenemos el vector "b" y el vector "a".
Vemos que son exactamente iguales, este es el vector a, este es el vector b,
son exactamente iguales,
sólo que, el "a" lo creé
usando espacios y
el "b" usando comas
y los espacios eran simplemente cosméticos era para que se leyera mejor
si los eliminó el resultado es obviamente el mismo.
Hay que tener el cuidado con del punto y coma. ¿Por qué?
Porque el punto y coma sirve para separar filas
y es un instrumento para para crear vectores columnas, ahora lo vamos a ver.
Pero ya lo hemos visto en videos anteriores.
Lo hemos visto, que el punto y coma nos permitía que no se
escribiera la salida a la hora de poner un comando.
Vamos a recordarlo, entonces,
ejecuto "clear" "clc" para borrar la línea de comandos
y recuperó el vector "b" de antes empiezo poniendo "b" y luego la flecha hacia arriba para recuperar el comando
y ahora pongo aquí un punto y coma.
Recordamos que esto servía
pues, para que la salida no se escribiera por la pantalla.
El vector "b" obviamente se ha creado, aquí lo vemos en el Workspace pero no le hemos visto aquí, porque no nos interesaba.
Este mismo símbolo, "punto y coma" se usa para separar
filas aquí tenemos un vector que aparentemente porque está escrito en la
línea de comandos y en la linea de comandos todo se escribe siempre en una sola línea ¿no?
valga la redundancia,
aparentemente eso puede parecer
un vector
fila pero si nos fijamos están separados ahí, por puntos y comas, eso
significa qué está separando filas y va a crear un vector columna. Vamos a verlo.
Voy a crear un vector "a"
voy a poner el primer elemento "1 punto y coma".
Fijaos que este "punto y coma" va dentro de los corchetes. Este "punto y coma" no termina
la linea sólo separa
filas dentro de una matriz, pues "1 5 8 y 7" por ejemplo y cierro.
Ahí lo tenemos, fijaos como aparece en el Workspace,
separados por "puntos y comas" significa que son filas diferentes, es decir que es un
vector columna y aquí vemos
si lo comparamos con el "b" que la estructura es totalmente diferente el "b" es un vector fila
el "a" es un vector columna.
Si hubiéramos puesto
esto así y después del último corchete un "punto y coma"
este punto y coma final sirve para no mostrar por la salida estandar
el resultado de esta operación
y estos "puntos y comas" de aquí dentro sirven para que separemos filas,
y creemos el vector columna.
Entonces, por ejemplo voy a cambiar este 7 y voy a poner un 9, vamos a ver que en el Workspace
el último elemento se va a cambiar por un 9, pero sige siendo un vector columna.
De nuevo los espacios que están alrededor
son meramente cosméticos esto es lo mismo que acabamos de escribir
vemos aquí
que es exactamente el mismo resultado.
Podemos aprovechar el punto y coma para crear matrices.
Aquí vemos por ejemplo una matriz.
Fijaos que he puesto aquí el nombre en mayúscula, por el convenio se suelen
escribir los nombres de lectores en minúsculas y los nombre de matrices
en mayúsculas dentro de Matlab y de Octave
Esta matriz "b" tiene una primera fila,
con los elementos "1 y 2". El "punto y coma" significa, salta a la siguiente fila y
ahora la siguiente fila pon el elemento "3 y 4" salta a la siguente fila y ahora pon el
elemento "5 y 6".
Es decir va a tener una, dos y tres filas
y como vemos tiene dos columnas porque en cada fila hay dos elementos. Vamos a verlo.
Entonces borró la línea comandos y voy a hacer "1 2" salto a la siguiente fila.
Fijaos, estoy empleando aquí espacios para separar a elementos
"3 y 4" y saltó a la siguente fila y "5 y 6"
No le voy a poner el punto y coma final para que se vea la salida y ahí vemos,
que tiene tres filas y dos columnas.
Tenemos las tres filas y las dos columnas.
Igualmente podía haber separado los elementos de cada fila por comas.
Personalmente prefiero siempre separar por espacios porque me parece que
el código que era más claro, pero esto también en valido.
Los dos comandos de arriba son exactamente iguales.
Insisto no confundir este punto y coma con el punto y coma final de los
comandos si añadiera aquí un punto y coma, el comportamiento sería el mismo,
vamos a cambiar este 6 por un 14 para que veamos,
veamos qué se cambia aquí el 6 en el Workspace
pero que no se actualiza la salida estándar, es decir, aparentemente parece
que no ha hecho nada, pero sólo por el "punto y coma" final que no se muestra el resultado,
pero la variable ha cambiado como podemos ver aquí en el Workspace.
Ya hemos visto cómo generar a mano vectores y matrices
a veces puede ser que necesitemos general vectores o matrices relativamente grandes o regulares
y desde luego no lo vamos a hacer a mano, tenemos una máquina, vamos
a hacer que la máquina trabaje para nosotros.
Hay un operador, el operador "dos puntos" que genera vectores regulares, genera
sucesiones. Entonces, voy a borrar aquí las variables que habría creado antes,
borro la linea de comandos y voy a crear un vector "v" tal que así.
Esto es un vector que va a cotener todos los números desde el 2 hasta el 8 de uno en uno.
Fijaos "2 3 4 5 6 7 y 8", si os fijais aquí, aparece un símbolo,
o una representación del vector, pone desde dos hasta ocho de uno en uno,
es porque este vector se ha creado usando una sucesión
pero a todos los efectos, para usarlo, esto es un vector como otro cualquiera.
Por ejemplo si hubiera puesto, desde dos hasta ocho de tres en tres,
obviamente, pues de dos hasta ocho de tres en tres hay menos
elementos. El vector es el "2 5 8" antes era desde dos hasta ocho de uno en uno
y vemos aquí en el Workspace que se ha cambiado por el "2:3:8".
Esto significa desde el dos hasta el ocho de tres en tres.
Otra función útil para generar vectores regulares es la función linespace,
linespace tiene un nombre un poco raro, suena a espacio lineal
algo que nos recuerda a las matemáticas y a lo mejor tampoco es de buen recuerdo,
pero, es muy sencillo de usar en Matlab y en Octave,
porque lo que hace es generar vectores con elementos igualmente espaciados.
Por ejemplo. Este comando que vemos aquí con linespace la llamada a la función con tres argumentos,
genera un vector que va desde siete hasta veinte, tiene 15 elementos
y todos los elementos están igualmente espaciados.
Entonces, yo lo voy a crear aquí, voy a borrar el vector de antes,
voy a borrar la línea comandos,
en vez de ponerle quince elementos le voy a poner seis elementos para que
aparezca mejor la pantalla porque si no van a aparecer demasiado números.
Entonces linespace desde "7 hasta 20", y he dicho que le iba a poner seis elementos.
Esto va a crear un vector con seis números igualmente espaciados entre siete y veinte.
Estos son los números.
Fijaos que bueno, los ha creado de una manera un poco rara. Ya lo hemos visto algunas
veces en algún otro video. Esto significa uno por diez elevado a uno.
Entonces estos números son siete, nueve coma seis, doce coma dos , catorce coma ocho, diecisiete coma cuatro y finalmente veinte.
Podéis comprobar que la distancia, la diferencia entre dos números consecutivos siempre es la misma,
por eso el nombre de espacio lineal ¿no? porque se va incrementando linealmente desde siete hasta veinte.
Si necesitamos generar vectores con números igualmente espaciados,
entre dos límites conocidos, en este caso siete y veinte por ejemplo,
pues este comando muy útil. Esto lo usaremos por ejemplo, en gráficos,
veremos que en algún video posterior que cuando usamos gráficos, generar vectores
con elementos separados por la misma distancia es bastante útil para pintar gráficos.
Muy bien, pues hasta aquí el video de vectores y matrices. Recuerda los
conceptos fundamentales de este video son como generar un vector y una matriz y
cómo crear vectores regulares usando "dos puntos" y "linespace".