MATLAB

El lenguaje de cálculo técnico

Características principales

  • Lenguaje de alto nivel para el cálculo numérico, la visualización y el desarrollo de aplicaciones.
  • Entorno interactivo para la iterativa exploración, el diseño y la solución de problemas.
  • Funciones matemáticas para álgebra lineal, estadística, análisis de Fourier, filtrado, optimización, integración numérica y resolución de ecuaciones diferenciales ordinarias.
  • Gráficos integrados para visualizar datos y herramientas para crear gráficos personalizados.
  • Herramientas de desarrollo para mejorar la calidad y  el mantenimiento del código, así como para maximizar el rendimiento.
  • Herramientas para crear aplicaciones con interfaces gráficas personalizadas.
  • Funciones para integrar algoritmos basados en MATLAB con aplicaciones y lenguajes externos tales como C, Java, .NET y Microsoft® Excel®.
Análisis y visualización de datos mediante MATLAB Desktop.
Expandir Análisis y visualización de datos mediante MATLAB Desktop. El entorno de MATLAB también permite escribir programas o desarrollar algoritmos y aplicaciones.

Cálculo numérico

MATLAB proporciona una serie de métodos de cálculo numérico para analizar datos, desarrollar algoritmos y crear modelos. El lenguaje de MATLAB incluye funciones matemáticas que permiten las operaciones científicas y de ingeniería habituales. Las funciones matemáticas principales utilizan librerías optimizadas por procesador a fin de permitir una ejecución rápida de los cálculos de vectores y matrices.

Entre los métodos disponibles se encuentran:

  • Interpolación y regresión
  • Diferenciación e integración
  • Sistemas lineales de ecuaciones
  • Análisis de Fourier
  • Valores propios y valores singulares
  • Ecuaciones diferenciales ordinarias (EDO)
  • Matrices dispersas

Los productos complementarios de MATLAB proporcionan funciones para áreas especializadas tales como estadística, optimización, análisis de señales y aprendizaje automático.

Perfeccionamiento de datos de malla mediante interpolación cúbica en 2-D.
Expandir Perfeccionamiento de datos de malla mediante interpolación cúbica en 2-D.

Análisis y visualización de datos

MATLAB ofrece herramientas para adquirir, analizar y visualizar datos, lo que permite profundizar en los datos en una fracción del tiempo que se tardaría con el uso de hojas de cálculo o lenguajes de programación tradicionales. También es posible documentar y compartir los resultados mediante gráficos e informes, o bien a través de la publicación de código de MATLAB.

Analizar y Visualizar Datos con MATLAB
Explorar, visualizar, y modelar sus datos con MATLAB.

Adquisición de datos

MATLAB permite acceder a datos de archivos, otras aplicaciones, bases de datos y dispositivos externos. Es posible leer datos con formatos populares como el de Microsoft Excel, archivos de texto o binarios, archivos de imagen, sonido y vídeo o archivos científicos tales como netCDF y HDF. Las funciones de E/S de archivos permiten trabajar con archivos de datos de cualquier formato.

Gracias al uso de MATLAB con productos complementarios, podrá adquirir datos desde dispositivos de hardware, como el puerto serie o la tarjeta de sonido del ordenador, o bien recurrir al streaming de los datos dinámicos medidos directamente a MATLAB para su análisis y visualización. También es posible comunicarse con instrumentos tales como osciloscopios, generadores de funciones y analizadores de señales.

Un archivo que combina números y texto para su importación a MATLAB mediante la herramienta de importación.
Expandir Un archivo que combina números y texto para su importación a MATLAB mediante la herramienta de importación. MATLAB genera automáticamente un script o una función para importar el archivo de forma programática.

Análisis de datos

MATLAB permite gestionar, filtrar y preprocesar los datos. Es posible realizar análisis de datos exploratorios a fin de descubrir tendencias, probar suposiciones y elaborar modelos descriptivos. MATLAB proporciona funciones para filtrado y suavizado, interpolación, convolución y transformadas rápidas de Fourier (FFT). Los productos complementarios proporcionan capacidades para ajuste de curvas o de superficies, estadística multivariante, análisis espectral, análisis de imágenes, identificación de sistemas y otras tareas de análisis.

Ajuste de una superficie a los datos con un modelo personalizado mediante MATLAB y Curve Fitting Toolbox.
Expandir Ajuste de una superficie a los datos con un modelo personalizado mediante MATLAB y Curve Fitting Toolbox.

Visualización de datos

MATLAB proporciona funciones integradas para la creación de gráficos en 2-D y 3-D, así como funciones de visualización de volumen. Estas funciones permiten visualizar y comprender los datos, además de comunicar los resultados. Los gráficos se pueden personalizar de forma interactiva o mediante programación.

La galería de gráficos de MATLAB ofrece ejemplos de muchas formas de mostrar los datos de forma gráfica en MATLAB. En cada ejemplo podrá ver y descargar el código fuente a fin de emplearlo en su aplicación de MATLAB.

Edición del título de un gráfico de contorno de superficie mediante el entorno de creación de gráficos interactivo de MATLAB.
Expandir Edición del título de un gráfico de contorno de superficie mediante el entorno de creación de gráficos interactivo de MATLAB.

Documentación y uso compartido de resultados

Cabe la posibilidad de compartir los resultados a modo de gráficos o de informes completos. Los gráficos de MATLAB se pueden personalizar para satisfacer las especificaciones de publicación y se pueden guardar con formatos de archivo habituales de gráficos o datos.

Se puede generar automáticamente un informe al ejecutar un programa de MATLAB. El informe contiene el código, los comentarios y los resultados del programa, incluidos los gráficos. Los informes se pueden publicar en diversos formatos, tales como HTML, PDF, Word o LaTeX.

Programa de MATLAB publicado como HTML mediante MATLAB Editor.
Expandir Programa de MATLAB (izquierda) publicado como HTML (derecha) mediante MATLAB Editor. Los resultados que se muestran en la ventana de comandos o en forma de gráficos se capturan y se incluyen, mientras que los comentarios sobre el código se convierten en títulos de sección y cuerpo de texto en HTML.

Programación y desarrollo de algoritmos

MATLAB proporciona un lenguaje de alto nivel y herramientas de desarrollo que permiten desarrollar y analizar algoritmos y aplicaciones con rapidez.

 Programación y Desarrollo de Algoritmos con  MATLAB
Escribir programas y desarrollar algoritmos usando el lenguaje de alto nivel y herramientas de desarrollo en MATLAB.

El lenguaje de MATLAB

El lenguaje de MATLAB proporciona soporte nativo para las operaciones de vectores y matrices que resultan fundamentales a fin de resolver problemas de ingeniería y ciencia, lo que permite un desarrollo y una ejecución rápidos.

Mediante el lenguaje de MATLAB, se pueden escribir programas y desarrollar algoritmos de manera más rápida que con los lenguajes tradicionales, ya que no es necesario realizar tareas administrativas de bajo nivel tales como declarar variables, especificar tipos de datos y asignar memoria. En muchos casos, el soporte para las operaciones de vectores y matrices elimina la necesidad de bucles For. Como resultado, con frecuencia una línea de código de MATLAB puede reemplazar varias líneas de código C o C++.

MATLAB proporciona características de los lenguajes de programación tradicionales, como control de flujo, gestión de errores y programación orientada a objetos (OOP). Se pueden utilizar tipos de datos fundamentales o estructuras de datos avanzadas, o bien definir tipos de datos personalizados.

Es posible producir resultados inmediatos mediante la ejecución de comandos de forma interactiva uno tras otro. Este enfoque permite explorar con rapidez diversas opciones y llevar a cabo iteraciones hasta alcanzar una solución óptima. Los pasos interactivos se pueden capturar a modo de scripts y funciones a fin de reutilizar y automatizar el trabajo.

Los productos complementarios de MATLAB proporcionan algoritmos integrados para el procesamiento de señales y comunicaciones, procesamiento de imagen y vídeo, sistemas de control y muchos otros dominios. Mediante la combinación de estos algoritmos con los suyos propios, podrá crear aplicaciones y programas complejos.

Un algoritmo de comunicaciones que genera 1024 bits aleatorios, convierte el vector en una señal transmitida, añade ruido gaussiano complejo y representa el resultado gráficamente en nueve líneas de código de MATLAB.
Expandir Un algoritmo de comunicaciones que genera 1024 bits aleatorios, convierte el vector en una señal transmitida, añade ruido gaussiano complejo y representa el resultado gráficamente en nueve líneas de código de MATLAB.

Herramientas de desarrollo

MATLAB incluye una serie de herramientas para desarrollar algoritmos de forma eficiente, entre las que se cuentan:

  • Ventana de comandos: permite introducir datos, ejecutar comandos o programas y mostrar los resultados de forma interactiva.
  • MATLAB Editor: ofrece características de edición y depuración, tales como establecer puntos de interrupción y avanzar paso a paso por líneas de código individuales.
  • Analizador de código: comprueba el código automáticamente en busca de problemas y recomienda modificaciones para maximizar el rendimiento y  el mantenimiento.
  • MATLAB Profiler: mide el rendimiento de los programas de MATLAB e identifica áreas de código que se pueden modificar para mejorarlas.

Otras herramientas adicionales comparan código y archivos de datos, además de proporcionar informes que muestran las dependencias de archivo, los recordatorios anotados y la cobertura del código.

Programa de MATLAB ejecutándose en modo de depuración para diagnosticar problemas.
Expandir Programa de MATLAB ejecutándose en modo de depuración para diagnosticar problemas.

Integración con otros lenguajes y aplicaciones

Las aplicaciones de MATLAB se pueden integrar con aplicaciones escritas en otros lenguajes. Desde MATLAB, es posible invocar directamente código escrito en C, C++, Java y .NET. Mediante el motor de librerías de MATLAB, se puede invocar código de MATLAB desde aplicaciones escritas en C, C++ o Fortran.

Rendimiento

MATLAB emplea librerías optimizadas por procesador para la rápida ejecución de cálculos de matrices y vectores. En el caso de los cálculos escalares multipropósito, MATLAB utiliza tecnología de compilación JIT (just-in-time) para proporcionar velocidades de ejecución que rivalizan con las de los lenguajes de programación tradicionales.

A fin de sacar partido de los ordenadores multinúcleo y multiprocesador, MATLAB ofrece gran cantidad de funciones multithread, tanto numéricas como de álgebra lineal. Estas funciones se ejecutan automáticamente en varios threads computacionales en una única sesión de MATLAB, lo que permite una ejecución más rápida en ordenadores multinúcleo.

Se puede sacar aún más partido de los equipos multinúcleo y otros recursos de computación de alto rendimiento tales como GPUs y clusters con productos complementarios de cálculo paralelo. Estos productos proporcionan constructos de alto nivel que permiten ejecutar las aplicaciones en paralelo con cambios menores en el código de MATLAB.

Parallel Computing
Descubra cómo las soluciones de computación en paralelo pueden acelerar sus proyectos de procesamiento de datos a gran escala.

Desarrollo y distribución de aplicaciones

Las herramientas y los productos complementarios de MATLAB proporcionan una serie de opciones para desarrollar y distribuir aplicaciones. Es posible compartir algoritmos y aplicaciones individuales con otros usuarios de MATLAB o distribuirlos libremente entre otras personas que no disponen de MATLAB.

Desarrollo e Implementación de Aplicaciones
Desarrollar y compartir aplicaciones MATLAB como código, ejecutables o componentes de software.

Diseño de interfaces gráficas de usuario

Mediante GUIDE (entorno de desarrollo de interfaces gráficas de usuario), es posible crear, diseñar y editar interfaces gráficas de usuario. Se pueden incluir controles habituales como cuadros de lista, menús desplegables y botones, además de gráficos de MATLAB. También es posible crear interfaces gráficas de usuario mediante programación utilizando las funciones de MATLAB.

Diseño mediante GUIDE de una interfaz gráfica de usuario de análisis de viento y la interfaz terminada.
Expandir Diseño mediante GUIDE de una interfaz gráfica de usuario de análisis de viento (arriba) y la interfaz terminada (abajo).

Distribución de aplicaciones

Para distribuir una aplicación directamente entre otros usuarios de MATLAB, se puede empaquetar a modo de aplicación de MATLAB, lo cual genera un archivo único para la distribución. Las aplicaciones se instalan automáticamente en la galería de aplicaciones de MATLAB para que resulte fácil acceder a ellas.

Si desea compartir aplicaciones con personas que no disponen de MATLAB, puede utilizar productos de distribución de aplicaciones. Estos productos complementarios generan de forma automática aplicaciones autónomas, librerías compartidas y componentes de software para su integración en entornos de C, C++, Java, .NET y Excel. Los ejecutables y los componentes se pueden distribuir de forma gratuita.

MATLAB Production Server permite ejecutar programas de MATLAB empaquetados con MATLAB Compiler dentro de sus sistemas de producción, lo cual hace posible la incorporación de análisis numéricos en aplicaciones web, de bases de datos y de empresa.

Visión General de MATLAB Compiler
Construir aplicaciones independientes y componentes de software desde programas de MATLAB utilizando MATLAB Compiler™

Generación de código C

MATLAB Coder se puede emplear para generar código C independiente a partir del código de MATLAB. MATLAB Coder admite un subconjunto del lenguaje de MATLAB que suelen emplear los ingenieros de diseño para desarrollar algoritmos a modo de componentes de sistemas más amplios. Este código se puede utilizar para la ejecución autónoma, para la integración con otras aplicaciones de software o como parte de una aplicación embebida.

Código de MATLAB e informe de generación de código que muestra el código C generado.
Expandir Código de MATLAB (izquierda) y un informe de generación de código (derecha) que muestra el código C generado.