2.2 fMRI data – preprocessing and analysis
2.2.2 fMRI data preprocessing
En esta secci´on explicaremos c´omo reunir ´ordenes en ficheros ejecutables desde la l´ınea de comandos de MATLAB. A estos ficheros se les suele llamar scripts . Ello permite realizar operaciones m´as complejas, y facilita sus repeticiones.
Para empezar a trabajar sobre esta parte del tutorial, lo primero que haremos es ejecutar clear para borrar las variables activas. Como ejemplo, consideramos el fichero correspondiente al dibujo de las gr´aficas de la secci´on 0.7. Para ejecutar los comandos del fichero se debe especificar el intervalo entre los valores de las abscisas en el muestreo. De este modo, se pueden construir infinidad de aproximaciones variando este par´ametro.
Primero hay que crear el fichero. El editor m´as conveniente es el que trae incorporado el propio MATLAB, aunque cualquier editor de texto es v´alido dado que la codificaci´on de los archivos de comandos de MATLAB es el est´andar ASCII como sucede habitualmente en los lenguajes de programaci´on. El editor de MATLAB es muy simple y suficiente para este tipo de aplicaciones. A partir de la versi´on 5, viene incorporado al propio MATLAB y mejora de versi´on en versi´on. Los ficheros ejecutables de MATLAB, los M-files , deben tener la extensi´on “.m”. En este ejemplo crearemos un fichero de nombre tutorm.m. Para abrir el editor pinchamos en (File, New, M-file ) y debemos ir escribiendo y/o copiando-pegando los comandos necesarios. Se debe tener en cuenta que cuando una sentencia comienza por %, es un comentario, y no se va a ejecutar. Por tanto, en este ejemplo, no es necesario reproducir esas l´ıneas.
UNIDAD DID´ACTICA 0. TUTORIAL DE MATLAB
% file: tutorm.m
% Seno y desarrollo del seno. %
% Para ejecutarlo tienes que fijar el paso % h : intervalo entre las x %
% El programa genera tres vectores, % x con las abscisas, yseno con % el seno evaluado en esas abscisas, % e ytaylor con el desarrollo
% hasta el termino cubico del seno en torno al cero. % xmin=-2; xmax=2; x=xmin:h:xmax; yseno=sin(x); ytaylor=x-x.ˆ3/6;
Una vez que se hayan introducido las sentencias, se guarda el fichero en la carpeta que creamos conveniente, aunque hay que comunicar a MATLAB la ruta en la que se encuentra para que MATLAB lo encuentre. Esto se puede hacer de varias maneras, dependiendo de la versi´on de MATLAB que estemos usando. En las versiones 6.5 y superiores se puede hacer modificando la carpeta-directorio activo en la caja correspondiente (ver figura 1); para volver a activar la vista inicial de MATLAB se procede como se indica en la figura 2. En versiones previas, se puede indicar la ruta del archivo en el path browser con el icono correspondiente, o desde el men´u File con la opci´on Set Path. Por defecto, si se guarda en el directorio ..
\
matlab\
bin, MATLAB lo encontrar´a6.Ahora se ha de volver a la ventana con la l´ınea de comando y se teclea en esta l´ınea el nombre del fichero quitando .m. En este caso tutorm.
>>tutorm
??? Undefined function or variable ’h’. Error in ==> C:\MATLAB\bin\tut.m
On line 13 ==> x=xmin:h:xmax;
Si se se invoca el fichero sin haber definido primero la variable h, aparecer´a un mensaje de error. Se deben definir todas las variables que no se definen en el propio script y que ´este utiliza.
>>h = 0.1; >>tutorm
>>plot(x,yseno,’rx’,x,ytaylor)
Una vez ejecutada esta instrucci´on deber´a aparecer una ventana con una gr´afica como la de la Figura 3. Cuando tecleamos tutorm en la l´ınea de comandos, MATLAB buscar´a en los directorios indicados en el path un fichero llamado tutorm.m. Una vez que lo encuentre lo leer´a y ejecutar´a los comandos como si se hubiesen tecleado uno detr´as de otro en la l´ınea de comandos. Si se desea ejecutar el programa otra vez pero con un paso diferente, hay que tener 6Si se utiliza MATLAB en el centro de c´alculo o laboratorio de una facultad o escuela, probablemente el
usuario no tenga permiso de escritura en ese directorio y no pueda guardar ah´ı sus ficheros. En este caso, se pueden guardar en la carpeta que se desee que despu´es se incorpora a la ruta de b´usqueda (path), bien con el comando path o con el icono correspondiente.
Figura 2: Recuperar vista de la figura 1
cuidado. El programa sobreescribir´a los vectores x, yseno e yatylor. Si se quieren guardar estos vectores hay que especificarlo, almacen´andolos en nuevas variables.
>>xp = x;
>>ysenop = yseno; >>ytaylorp = ytaylor;
Ahora podemos seleccionar un nuevo paso h y volver a ejecutar tutor . >>h = 0.01;
>>tutorm
Tenemos dos aproximaciones; la primera con un paso h de 0.1 que se almacena en los vectores xp, ysenop e ytaylorp y la segunda relativa a un paso de 0.01 que guardamos en los vectores x, yseno e ytaylor.
Ejercicio 0.42 Calcular la dimensi´ on que tienen que tener los vectores x y xp y confirmar el resultado utilizando la orden size.
Ejercicio 0.43 Crear y ejecutar desde MATLAB un fichero que se llame BAIP.m con la se- cuencia de comandos siguiente:
v = [1 3 5]’; B = [ [1 2 3]’ [2 4 7]’ [3 5 8]’]; BA=[B v] BA(2,:)=BA(2,:)-2*BA(1,:) BA(3,:)=BA(3,:)-3 * BA(1,:) IP=[1 0 0;0 0 1;0 1 0]; BA=IP*BA
UNIDAD DID´ACTICA 0. TUTORIAL DE MATLAB
Figura 3: Gr´afica correspondiente al ejemplo tutorm.m.
Ejercicio 0.44 Pedir ayuda del comando pause e incorporarlo entre algunas l´ıneas del ejercicio anterior para ver todos los pasos de la secuencia de comandos.
Ejercicio 0.45 Crear y ejecutar desde MATLAB un fichero que se llame CURVATY.m con una secuencia de comandos que realicen las operaciones siguientes:
1. Borrar todas las variables activas de la memoria.
2. Definir un vector t cuya primera componente sea
−
4, que tenga un incremento entre componentes de 0.05 y termine en el punto 1.3. Definir un vector y a partir de cada componente del vector t reci´en definido como: y = 5e−t2
+ sin(10t)
4. Dibujar la curva (t, y) con cruces rojas y con una ret´ıcula ( grid) incorporada.