Tutorial básico de MatLab

Como ya sabemos, trabajaremos con MatLab. Por ello es conveniente tener ideas claras desde el principio. Es importante saber que MatLab es un acrónimo de Matrix Laboratory, o laboratorio de matrices. Es de suponer entonces que estará optimizado para todas aquellas operaciones en las que las matrices (¿Qué es una matriz? Definición) estén implicadas.

El objetivo final de las diferentes guías que hagamos será entender, al menos en gran parte, cómo funcionan los codificadores de audio, sintetizadores y demás utensilios con audio digital; por ello, y dado que empezaremos desde cero, os escribimos esta guía -básica- que creemos que será muy útil.

  • Iniciación con MatLab

Abramos MatLab para empezar a utilizarlo. Cuando termine de cargar os aparecerá un entorno con diferentes ventanas. Estas ventanas es posible moverlas, de modo que las puedas colocar a tu gusto. Si alguna de ellas no aparece puedes buscarla en Desktop (Escritorio) -> Desktop Layout (Diseño de escritorio); y Desktop -> Toolbars (Barras de herramientas).

Cada una de ellas ejerce una función. Destacamos exclusivamente la línea de comandos, en la cual puedes poner líneas de código y ver el resultado al instante. Escribe en ella “a = 1” (sin las comillas) y “b = a + 10”. Tras realizar este paso vemos la utilidad de otra ventana, el workspace o espacio de trabajo donde se muestras y almacenan las variables que estamos utilizando. Para borrar las variables del espacio de trabajo escribe en la línea de comandos “clear”. Para borrar el texto que aparece en la ventana de la línea de comandos escribe “clc”.

Destacar que en MatLab se trabaja con archivos de texto, llamados scripts, del tipo nombre.m, aunque se pueden modificar con cualquier editor de textos cualquiera. Para crear uno de ellos escribe en la línea de comandos “edit prueba.m”. Se abrirá una ventana auxiliar donde podremos colocar nuestro código. Realicemos un script para representar la función x^2. Copia y pega lo siguiente:

x = [0:0.1:10];
y = x.^2;
plot(x,y);

¿Qué es cada línea? Con la primera creamos un vector con el valor inicial hasta el valor final 10 en incrementos de 0.1; es decir, tendremos un vector que irá desde 0, 0.1, 0.2 …, 1, 1.1, 1.2, etc. El punto y coma, “;”, del final sirve para que no aparezca el valor de ‘x’ cuando se ejecute dicha línea. La segunda línea nos crea el vector ‘y’ con los valores de ‘x’ al cuadrado. Es importante poner el punto, “.”, antes de un operador si vamos a trabajar con valores escalares (que no sean matrices). Si no lo ponemos, Matlab lo interpreta como una matriz y calcularía el producto matricial de “x por x”; plot(x,y) representa los valores en pares (x,y) y los une entre ellos.

¡Dale al play! Haz click sobre el icono verde de play para ejecutar el script. Te saldrá la representación de la función que queríamos. Prueba a quitar el punto y coma del final de la línea de ‘x’ o de ‘y’ y observa que ocurre. Ahora, prueba a poner “stem(x,y)” en lugar de la última línea. Sigue dibujando los valores de la función pero esta vez de forma discreta; no los une.

  • Trabajar con matrices

Crear una matriz se basa en escribir valores dentro de corchetes, ‘[]’. Por ejemplo, A = [1 2 3; 4 5 6]. Nos dará una matriz de dos filas con tres columnas. El punto y coma, ‘;’, se utiliza como separador de filas, mientras que los espacios sirven para separar elementos dentro de una misma fila. El contenido de la matriz puede ser incluso un número imaginario o una función que devuelva algún valor. Esto se explicará más adelante.
Como otro dato a tener en cuenta es el operador de trasposición. Al igual que ocurre en matemáticas, nosotros también podremos transponer matrices. Para hacerlo hay que escribir una comilla, ‘, detrás de la matriz. Es decir; “B = A’;” dará como resultado B igual a la matriz A traspuesta.

  • Sentencias de control y funciones

Os presentamos palabras clave para escribir cualquier tipo de código y que son (muy) similares entre todos los lenguajes de programación.

IF: Sirve como condicionante. Por ejemplo, si queremos que se ejecute un trozo de código si se cumple una condición u otro trozo si se cumple la contraria. Analizamos el siguiente ejemplo:

if (i == 2)
   display('i = 2');
else
   display('i vale distinto de 2');
end

Aclarar que la función “display” escribe en la ventana de la línea de comandos lo que está entre las comillas.

Lo que se encuentra entre paréntesis (i == 2) significa, literalmente, que “si i es igual a 2”, entonces haz lo que encuentra debajo; es decir, display(‘i = 2’). En caso contrario, ‘else’, haz lo que esté debajo de ‘else’. Para cerrar la sentencia SIEMPRE hay que poner ‘end’. En caso contrario dará error.

FOR: Útil a la hora de formar bucles, por ejemplo, para incrementar variables. La sintaxis es la que sigue,

for (i = 1:10)
    haz_lo_que_sea;
end

Con ello hemos hecho un bucle. Al entrar en él, la variable ‘i’ tomará el valor 1 y se ejecuta haz_lo_que_sea. Vuelve al paso anterior e incrementa ‘i’ en una unidad y vuelve a ejecutar haz_lo_que_sea. Así hasta llegar al valor de i = 10, que hará lo mismo y saldrá. Importante, al igual que antes, poner ‘end’ al final.

WHILE: Al igual que la anterior, se trata de un bucle, aunque cambia sutilmente.

while (i < 10)
    haz_lo_que_sea;
    i = i + 1;
end

En este caso, la sentencia se repetirá “mientras (i sea menor de 10)”. Es decir; que si la variable ‘i’ nunca supera ese valor, el bucle se mantendrá indefinidamente. Por ello es aconsejable incluir una línea que incremente la variable que se usa como condicionante, tal y como véis en el ejemplo.

Por supuesto, en los paréntesis condicionantes anteriores sólo hemos puesto condiciones respectivas a números, pero también podríamos poner que la longitud de una cadena de caracteres sea mayor que un número o que el seno de un ángulo sea menor que uno, por poner distintos ejemplos.

Hasta ahora sólo hemos destacado sentencias que serán utilizadas en, probablemente, todos tus scripts. Te presentamos seguidamente qué es una función y algunos ejemplos ya escritos dentro del entorno de desarrollo.

Definimos una función como un código escrito a la cual se le pasan unos parámetros de entrada con los que interacciona para devolver un resultado. En MatLab, el nombre de la función debe corresponder con el nombre de archivo. Creamos una función para ejemplarizar. Al igual que antes, escribe en línea de comandos “edit valor_cuadratico.m”, que será una función que devolverá el número elevado al cuadrado. Dentro de él:

function [y] = valor_cuadratico(x)
y = x.^2;

La primera línea define que estamos dentro de una función. Los parámetros de salida (resultados) se ponen entre corchetes; si tuviéramos dos valores de salida podríamos poner “[y z]”. Posteriormente el nombre de la función -que recalcamos que tiene que tener el mismo nombre que el del archivo- y, finalmente, los parámetros de entrada. En caso de tener varios los separaríamos mediante comas, ‘,’. Para ver su utilidad id a la línea de comandos y escribir “valor_cuadrático(3)”. Como es lógico, devolverá 9. Así de sencillo 😉

Para terminar detallamos los ejemplos dentro de MatLab. Si habéis estado atentos, en el primer ejemplo escribimos “plot(x,y)”. Efectivamente, se trata de una función. En ese caso, los parámetros de entrada eran dos vectores en lugar de números (o escalares) y no tiene valores de salida. Análogamente vimos “stem”, pero para valores discretos.

– length(x): devuelve la longitud de un vector ‘x’. Dicho vector puede ser numérico o bien de caracteres.

– size(A): siendo A una matriz devuelve dos elementos dentro de un vector, fila y columna.

– sum(A): suma los elementos en una misma fila de una matriz A. Es posible hacer “sum(sum(A))” para conseguir la suma total de todos los elementos de la matriz.

Por último y no menos importante, de hecho, será vuestra mejor ayuda, es la funcion ‘help’. En la línea de comandos escribe ‘help’ + función, vendrá una extensa ayuda explicando qué hace dicha función y que parámetros modificadores utiliza.

¡Son bienvenidos comentarios y dudas que te hayan podido surgir!

Si te ha resultado útil, enróllate y pon un comentario o vota el post 😉

Acerca de Codificando Escarabajos

Blog de música!
Esta entrada fue publicada en Aprende con nosotros y etiquetada , , , , , , , , , . Guarda el enlace permanente.

5 respuestas a Tutorial básico de MatLab

  1. Pingback: Técnicas de ralentización de sonido | Codificando Escarabajos

  2. Roman dijo:

    I like the helpful info you provide in your articles. I will bookmark your weblog and check again here frequently. I’m quite sure I will learn many new stuff right here! Good luck for the next!

  3. Owen Knower dijo:

    I simply want to tell you that I am just all new to blogging and seriously loved your website. Most likely I’m likely to bookmark your blog . You certainly come with wonderful article content. Many thanks for sharing your web site.

  4. mind matter dijo:

    I went over this web site and I conceive you have a lot of excellent information, saved to my bookmarks (:.

  5. Mike Javaux dijo:

    I sensed that you really put much effort on this, and I appreciated that

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s