Yo en mis clases de comunicaciones I solicito que se hagan informes en Matlab regularmente. Un informe es básicamente una página web autogenerada por el programa que incorpora gráficos y código de un guión (script) de Matlab. A continuación voy a describir brevemente cómo se hacen y cuál es el resultado.

Como ya dije, un informe es un mecanismo que permite dar formato publicable a algo que se desarrolla con Matlab. Existen varias ventajas, pero la principal es poder incluir resultados de cálculos o gráficos con base a datos y procesamiento. La descripción que voy a hacer es una muy simple, así que no se hagan falsas expectativas, si ya sabe qué son los informes para Matlab, ésta publicación no le aportará mucho, por otro lado si no sabe, seguramente le resultará útil. Por otro lado, se asumirá un mínimo conocimiento de Matlab, por ejemplo qué son las variables del espacio de trabajo.

Un ejemplo de qué tan ilustrativo puede ser un informe, es una explicación de cómo converge la serie trigonométrica de Fourier a una función periodica cuando van aumentando los términos. Un informe sobre este tema podría consistir en secciones que describan partes del proceso, las variables relevantes al resultado, y los gráficos que muestran la tendencia de la serie.

¿Qué es un guión por celdas?

En éste programa se usa regularmente una interfaz de línea de comandos (CLI por sus siglas en inglés), en la cual cada comando es ejecutado inmediatemente por el núcleo, usando los valores de las variables que estén establecidas en el espacio de trabajo (workspace) y estableciendo las que salgan de la ejecución del comando particular. Existe también la posibilidad de escribir múltiples comandos para ser ejecutados con una sola orden, esta modalidad de ejecución son los guiones (scripts en inglés), que consisten en un archivo de texto plano que se guarda en una carpeta especial y que se puede ejecutar línea a línea cuando su nombre es invocado en la CLI, es como crear un comando nuevo programado por nosotros mismos usando las capacidades predefinidas de Matlab. No hay necesidad de crearlos con editores de texto plano (rudimentarios), Matlab incluye un poderoso editor de texto que ayuda a llevar control de las líneas, advertencias y errores en la programación, entre otras funciones sofisticadas muy parecidas a un entorno integrado de desarrollo (IDE).

Como ya dije, los guiones se ejecutan línea a línea cuando su nombre es invocado (y matlab sabe encontrarlos sin ambigüedad usando el PATH), pero incluso así, durante la creación de un guión, se puede ejecutar sólo una porción de éste, siempre y cuando se sepa cómo dividir (marcar) un guión en partes ejecutables. Dado que la sintaxis de Matlab es programable, los guiones pueden servir para crear programas sofisticados usando programación estructurada, programación orientada a objetos e incluso un poderoso editor de interfaces gráficas (GUI).

La diferencia de un informe con un guión ordinario, es que éste tiene una sintaxis especial en la que los comandos se separan por partes llamadas celdas. Éstas son las que se pueden ejecutar independientemente, es decir, el guión puede consistir de un conjunto de celdas ejecutables independientemente, caso en el cual las líneas ejecutadas obtienen la información que necesitan de las variables y contenidos actuales en el espacio de trabajo. Cuando un guión tiene varias celdas, el editor señala la celda actual con un color de fondo (amarillo muy claro), indicando que si se ejecuta la celda actual se ejecutarán todas las instrucciones dentro del color de fondo diferente, la ejecución de una celda se hace oprimiendo las teclas Control y Enter simultáneamente.

Como un informe se puede ejecutar por partes, también significa que se puede verificar el logro del objetivo paso a paso sin necesidad de volver a ejecutar las partes anteriores, ésto es especialmente útil cuando la ejecución es muy pesada, hay que esperar varios segundos o minutos para calcular un resultado y dejarlo en una variable, si dejo esta porción en una celda aparte, podría seguir programando sin necesidad de recalcular la parte más demorada. Finalmente, cuando todo esté completo y se sepa que el resultado es el esperado, se puede generar la página web formateada al estilo matlab, es decir, tal y como aparece la ayuda de matlab (la que sale con el comando doc).

¿Qué es un Informe?

Como dije anteriormente, un informe es un guión (archivo de texto) que se puede ejecutar por partes (celdas), pero no sólo eso, cada celda tiene un título y un contenido que le sigue a manera de descripción de los comandos o gráficos que le siguen. Éste texto aparecerá como texto ordinario en la página generada y ayudará a entender los gráficos o de las porciones de programa que contiene la celda.

Los comentarios en un guión se escriben con un caracter de porcentaje (%) al inicio de la línea, pero para marcar el inicio de una celda se escriben dos de ellos, y cada instrucción entre un doble porcentaje y el siguiente doble porcentaje hará parte de la celda. Lo que se escribe en la línea del %% constituye el título de la sección, los comentarios que le siguen inmediatamente a esa línea (sin líneas de separación) serán el contenido literal de esa sección, es decir, la explicación.

Durante la generación del informe, cada gráfico que despliegue el código se incluirá en la página en el lugar donde aparece. Acá hay que hacer una claración, Matlab por defecto genera un objeto figure una sola vez cuando se invocan las primitivas de graficación (por ejemplo plot), así que hay que usar o bien la primitiva subplot o generar figuras nuevas con la primitiva figure para que en una misma celda queden varios gráficos, de otra forma sólo queda un gráfico con la curva del último llamado.

En el siguiente video muestro rápidamente como crear un informe cuyo objetivo (o tema) es explicar brevemente en qué consiste la serie trigonométrica y cómo, a partir de una función períodica rectangular dada, la serie de senos y cosenos se vuelve más parecida a la función original en la medida que aumentan la cantidad términos de la serie, implicando así que la serie converge a la función en el infinito.

¿Cómo generar un informe en Matlab?

En este video se ve cómo generar un informe, éste ya está creado (escrito), lo abro en el editor dando doble click sobre el archivo, aunque éste es un archivo de texto plano, el editor de Matlab resalta en colores distintos la estructura, por ejemplo, el inicio de una celda (%%), los comentarios de las líneas inmediatamente siguientes, etc. Fíjese también en el botón que genera el informe y el formato final de éste. La gráfica mostrada, muestra primero la función original, luego sobre ésta y usando colores distintos (automáticamente), se grafican las diferentes versiones de la serie cada vez con más términos.

Conclusiones




Matlab es una poderosísima herramienta casi para cualquier dominio del conocimiento que incluya algún tratamiento matemático, especialmente, si se trata de cálculo numérico (no simbólico), sin embargo, como todas las herramientas, resulta inútil si no se sabe qué puede hacer. Una de las utilidades más básicas y útiles que tenemos a disposición son los informes, que nos permiten generar contenidos visualmente atractivos a partir de cálculos que pueden llegar muy sofisticados.

Les queda la tarea de encontrar las funciones que serán útiles para dar formato a cosas que por defecto se ven mal o que no se muestran como nosotros quisiéramos, por ejemplo mostrar el contenido de un vector o enlazar a Internet una referencia (mi blog por ejemplo 🙂 ). Matlab no sólo genera informes, también puede crear videos, tomar datos de un periférico del PC (cámara, micrófono, puerto serial, etc.), guardar los contenidos de las variables en archivos de Hoja de cálculo y crear interfaces gráficas.
Yo no soy un experto en el tema, así que por favor no me vayan a hacer preguntas sofisticadas, sólo en el contexto de los informes y cosas básicas sobre el uso del programa.

Tags: , , ,

Array on ¿Cómo crear Informes en Matlab?

  1. jenny dice:

    QUE INFORMACION TAM MEDIOCRE NO DEBERIA COLGAR ESAS ESTUPIDECES ES UNA PERDIDAD DE TIEMPO.

  2. César dice:

    Hola Jenny,

    me gustaría que fuera más constructivo tu comentario y dijeras cómo mejorarlo o qué parte exactamente te pareció mediocre. Lo colgué porque a mí me resultó muy útil esta información cuando la conocí y me pareció que a alguien más le podría servir.

    De todas formas gracias por el comentario.

  3. victor dice:

    Para las personas que no conocen nada de matlab es una bonita introducción. La verdad es que este programa lo otilizan mucho en la universidad, aunque personalmente creo que al final se termina matando la imaginación porque hace todo.

  4. Jesus dice:

    Gracias. A mí si me sirve. Tal vez Jenny creó ella solita Matlab

  5. Dairo dice:

    Muy útil, Cesar no tienes documentación de esto??? te agradecería la ayuda de antemano, he trabajado los reportes en CSharp pero nunca en matlab

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.