Saltar al contenido principal

# 11.9: Ejercicio- Uso de una Variable para el Trazado

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\id}{\mathrm{id}}$$ $$\newcommand{\Span}{\mathrm{span}}$$

( \newcommand{\kernel}{\mathrm{null}\,}\) $$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$ $$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$ $$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\id}{\mathrm{id}}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\kernel}{\mathrm{null}\,}$$

$$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$

$$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$

$$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$ $$\newcommand{\AA}{\unicode[.8,0]{x212B}}$$

$$\newcommand{\vectorA}[1]{\vec{#1}} % arrow$$

$$\newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow$$

$$\newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vectorC}[1]{\textbf{#1}}$$

$$\newcommand{\vectorD}[1]{\overrightarrow{#1}}$$

$$\newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}}$$

$$\newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}}$$

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\avec}{\mathbf a}$$ $$\newcommand{\bvec}{\mathbf b}$$ $$\newcommand{\cvec}{\mathbf c}$$ $$\newcommand{\dvec}{\mathbf d}$$ $$\newcommand{\dtil}{\widetilde{\mathbf d}}$$ $$\newcommand{\evec}{\mathbf e}$$ $$\newcommand{\fvec}{\mathbf f}$$ $$\newcommand{\nvec}{\mathbf n}$$ $$\newcommand{\pvec}{\mathbf p}$$ $$\newcommand{\qvec}{\mathbf q}$$ $$\newcommand{\svec}{\mathbf s}$$ $$\newcommand{\tvec}{\mathbf t}$$ $$\newcommand{\uvec}{\mathbf u}$$ $$\newcommand{\vvec}{\mathbf v}$$ $$\newcommand{\wvec}{\mathbf w}$$ $$\newcommand{\xvec}{\mathbf x}$$ $$\newcommand{\yvec}{\mathbf y}$$ $$\newcommand{\zvec}{\mathbf z}$$ $$\newcommand{\rvec}{\mathbf r}$$ $$\newcommand{\mvec}{\mathbf m}$$ $$\newcommand{\zerovec}{\mathbf 0}$$ $$\newcommand{\onevec}{\mathbf 1}$$ $$\newcommand{\real}{\mathbb R}$$ $$\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}$$ $$\newcommand{\laspan}[1]{\text{Span}\{#1\}}$$ $$\newcommand{\bcal}{\cal B}$$ $$\newcommand{\ccal}{\cal C}$$ $$\newcommand{\scal}{\cal S}$$ $$\newcommand{\wcal}{\cal W}$$ $$\newcommand{\ecal}{\cal E}$$ $$\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}$$ $$\newcommand{\gray}[1]{\color{gray}{#1}}$$ $$\newcommand{\lgray}[1]{\color{lightgray}{#1}}$$ $$\newcommand{\rank}{\operatorname{rank}}$$ $$\newcommand{\row}{\text{Row}}$$ $$\newcommand{\col}{\text{Col}}$$ $$\renewcommand{\row}{\text{Row}}$$ $$\newcommand{\nul}{\text{Nul}}$$ $$\newcommand{\var}{\text{Var}}$$ $$\newcommand{\corr}{\text{corr}}$$ $$\newcommand{\len}[1]{\left|#1\right|}$$ $$\newcommand{\bbar}{\overline{\bvec}}$$ $$\newcommand{\bhat}{\widehat{\bvec}}$$ $$\newcommand{\bperp}{\bvec^\perp}$$ $$\newcommand{\xhat}{\widehat{\xvec}}$$ $$\newcommand{\vhat}{\widehat{\vvec}}$$ $$\newcommand{\uhat}{\widehat{\uvec}}$$ $$\newcommand{\what}{\widehat{\wvec}}$$ $$\newcommand{\Sighat}{\widehat{\Sigma}}$$ $$\newcommand{\lt}{<}$$ $$\newcommand{\gt}{>}$$ $$\newcommand{\amp}{&}$$ $$\definecolor{fillinmathshade}{gray}{0.9}$$

En este ejercicio, vamos a echar un vistazo más de cerca a Script2.m, que demuestra cómo usar variables para especificar las rutas a tus archivos, que es mucho más robusto. Asegúrese de que Chapter_11 siga siendo la carpeta actual y escriba pwd (que significa directorio de trabajo de impresión) en la línea de comandos. Deberías ver la ruta de tu carpeta actual. La línea 3 de Script2.m usa el comando pwd para obtener la ruta a la carpeta actual y almacenarla en una variable llamada DIR (abreviatura de directorio, pero podríamos haberle llamado casi cualquier cosa). Ejecute la línea 3 del script (usando cualquiera de los métodos descritos en el ejercicio anterior) y luego observe el valor de DIR (escribiendo DIR en la línea de comandos o haciendo doble clic en él en el panel Espacio de trabajo). Verás que DIR es una cadena que contiene esa ruta a la carpeta actual.

Ahora podemos usar DIR como punto de partida para proporcionar rutas a nuestros comandos de Matlab. Esto es mucho más robusto que especificar algo como C: /erp_analysis_book/ch_10_scripting como ruta. Por ejemplo, si mueve sus datos y scripts a una nueva ubicación en su computadora o a una nueva computadora, el uso de DIR como ruta seguirá funcionando (porque el comando pwd devolverá la nueva ubicación del script), pero al especificar la ruta directamente, ahora fallará.

Realmente no necesitábamos especificar las rutas en Script2.m, porque los archivos estaban ubicados en la carpeta actual. Cierre Script2.m y abra Script2b.m, que muestra un ejemplo más realista. Este nuevo script asume una organización más complicada pero mejor para tus archivos de datos, en la que cada participante tiene una carpeta separada dentro de una carpeta de datos general.

Esta es la organización que generalmente recomiendo para los datos de EEG y ERP (ya sea que use EEGLAB y ERPLAB o no). Terminarás con muchos archivos para cada participante, y esto simplemente los mantiene bien organizados. Hay cierta redundancia, porque también recomiendo incluir el número de identificación del sujeto en cada nombre de archivo. Pero esta redundancia es útil porque minimiza la probabilidad de errores. Nada de EEGLAB o ERPLAB requiere de esta organización, pero se utiliza para todos los guiones de este libro. Puedes elegir una organización diferente, pero por favor no solo pongas todos los archivos de todos los participantes en una sola carpeta. Parecerá más sencillo al principio, pero a la larga te hará la vida mucho más difícil. ¡Simplemente no quieres tener 3478 archivos en la misma carpeta!

Esta organización significa que necesitas un camino diferente para cada participante. En Script2b.m, implementamos esto usando DIR como carpeta base (la carpeta que contiene el script) y luego usamos esto para crear una variable llamada Subject_dir que contiene la ruta para el participante que estamos procesando actualmente.

Nota importante: Este enfoque asume que la carpeta actual de Matlab está establecida para ser la carpeta que contiene el script. Debes asegurarte de que esto sea cierto cuando ejecutes los guiones de este libro.

La línea 6 de Script2b.m establece el valor de Subject_dir así:

Subject_dir = [DIR '/N170_Data/1/'];% Carpeta que contiene datos para este tema

Poner varias cadenas de caracteres dentro de corchetes hace que Matlab concatene las cadenas juntas. Por ejemplo, ['ERPs' 'Are' '' Great '] es equivalente a' ErpsaRegreat', y ['ERPs '''''grandes'] es equivalente a 'ERP son grandes'. Si DIR tiene un valor de 'C: /erp_analysis_book/ch_10_scripting', entonces [DIR' /N170_Data/1/ '] tiene un valor de' C: /erp_analysis_book/ch_10_scripting/N170_data/1/'.

Para ver esto en acción, ejecuta las líneas 3 y 6 de Script2b.m y luego mira el valor de Subject_dir. Así es como se ve en mi computadora:

/Users/suerte/dropbox/investigación/manuscritos/erp_analysis_book/ch_10_scripting/ejercicios/n170_data/1/

Esto puede parecer mucho trabajo, pero te garantizo que te hará la vida más fácil a la larga. Por ejemplo, si desarrollas un script para un experimento y quieres usarlo para un segundo experimento, puedes colocar una copia del script en la carpeta para el segundo experimento, y el script buscará automáticamente los archivos de datos en el lugar correcto.

Si está utilizando una máquina con Windows, es posible que Script2b.m no funcione correctamente porque usa cortes entre los nombres de las carpetas en lugar de las barajas. Simplemente puede reemplazar las barajas en los trazados por las contravolladuras.

This page titled 11.9: Ejercicio- Uso de una Variable para el Trazado is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Steven J Luck directly on the LibreTexts platform.