MATLAB (una abreviatura de "laboratorio de matrices") es un lenguaje de programación patentado de múltiples paradigmas y un entorno informático numérico desarrollado por MathWorks . MATLAB permite manipulaciones de matrices , trazado de funciones y datos, implementación de algoritmos , creación de interfaces de usuario e interactuar con programas escritos en otros lenguajes.
Paradigma | multi-paradigma : funcional , imperativo , procedimental , orientado a objetos , matriz |
---|---|
Diseñada por | Cleve Moler |
Desarrollador | MathWorks |
Apareció por primera vez | finales de la década de 1970 |
Lanzamiento estable | R2021a [1] / 17 de marzo de 2021 |
Disciplina de mecanografía | dinámico , débil |
Extensiones de nombre de archivo | .m, .p, [2] .mex *, [3] .mat, [4] .fig, [5] .mlx, [6] .mlapp, [7] .mltbx, [8] .mlappinstall, [ 9] .mlpkginstall [10] |
Sitio web | mathworks.com |
Influenciado por | |
Influenciado | |
|
Desarrollador (es) | MathWorks |
---|---|
Versión inicial | 1984 |
Lanzamiento estable | R2021a [1] / 17 de marzo de 2021 |
Escrito en | C / C ++ , MATLAB |
Sistema operativo | Windows , macOS y Linux [20] |
Plataforma | IA-32 , x86-64 |
Tipo | Computación numérica |
Licencia | Software comercial patentado |
Sitio web | mathworks.com |
Aunque MATLAB está destinado principalmente a la computación numérica, una caja de herramientas opcional utiliza el motor simbólico MuPAD que permite el acceso a las capacidades de computación simbólica . Un paquete adicional, Simulink , agrega simulación gráfica multidominio y diseño basado en modelos para sistemas dinámicos e integrados .
A partir de 2020, MATLAB tiene más de 4 millones de usuarios en todo el mundo. [21] Los usuarios de MATLAB proceden de diversos ámbitos de la ingeniería , la ciencia y la economía .
Historia
Orígenes
MATLAB fue inventado por el matemático y programador de computadoras Cleve Moler . [22] La idea de MATLAB se basó en su tesis doctoral de la década de 1960. [22] Moler se convirtió en profesor de matemáticas en la Universidad de Nuevo México y comenzó a desarrollar MATLAB para sus estudiantes [22] como pasatiempo. [23] Desarrolló la programación de álgebra lineal inicial de MATLAB en 1967 con su asesor de tesis, George Forsythe . [22] Esto fue seguido por el código de Fortran para ecuaciones lineales en 1971. [22]
La primera versión temprana de MATLAB se completó a fines de la década de 1970. [22] El software se dio a conocer al público por primera vez en febrero de 1979 en la Escuela de Postgrado Naval de California. [23] Las primeras versiones de MATLAB eran calculadoras matriciales simples con 71 funciones predefinidas. [24] En ese momento, MATLAB se distribuyó de forma gratuita [25] [26] a las universidades. [27] Moler dejaba copias en las universidades que visitaba y el software desarrolló un gran número de seguidores en los departamentos de matemáticas de los campus universitarios. [28] : 5
En la década de 1980, Cleve Moler conoció a John N. Little . Decidieron reprogramar MATLAB en C y comercializarlo para las computadoras de escritorio IBM que estaban reemplazando a las computadoras centrales en ese momento. [22] John Little y el programador Steve Bangert reprogramaron MATLAB en C, crearon el lenguaje de programación MATLAB y desarrollaron funciones para cajas de herramientas. [23]
Desarrollo comercial
MATLAB se lanzó por primera vez como producto comercial en 1984 en la Conferencia de control automático en Las Vegas . [22] [23] MathWorks , Inc. se fundó para desarrollar el software [26] y se lanzó el lenguaje de programación MATLAB. [24] La primera venta de MATLAB fue el año siguiente, cuando Nick Trefethen del Instituto de Tecnología de Massachusetts compró diez copias. [23] [29]
A fines de la década de 1980, se habían vendido varios cientos de copias de MATLAB a las universidades para uso de los estudiantes. [23] El software se popularizó en gran parte gracias a las cajas de herramientas creadas por expertos en varios campos para realizar tareas matemáticas especializadas. [25] Muchas de las cajas de herramientas se desarrollaron como resultado de estudiantes de Stanford que usaron MATLAB en el ámbito académico y luego llevaron el software al sector privado. [23]
Con el tiempo, MATLAB se reescribió para los primeros sistemas operativos creados por Digital Equipment Corporation , VAX , Sun Microsystems y para PC Unix. [23] [24] La versión 3 fue lanzada en 1987. [30] El primer compilador de MATLAB fue desarrollado por Stephen C. Johnson en la década de 1990. [24]
En 2000, MathWorks agregó una biblioteca basada en Fortran para álgebra lineal en MATLAB 6, reemplazando las subrutinas LINPACK y EISPACK originales del software que estaban en C. [24] La caja de herramientas de computación paralela de MATLAB se lanzó en la Conferencia de supercomputación de 2004 y el soporte para unidades de procesamiento de gráficos (GPU) se le añadió en 2010. [24]
Historia reciente
Se realizaron algunos cambios especialmente importantes en el software con la versión 8 en 2012. [31] La interfaz de usuario se modificó [ cita requerida ] y se expandió la funcionalidad de Simulink . [32] Para 2016, MATLAB había introducido varias mejoras técnicas y de interfaz de usuario, incluido el cuaderno MATLAB Live Editor y otras características. [24]
Sintaxis
La aplicación MATLAB se basa en el lenguaje de programación MATLAB. El uso común de la aplicación MATLAB implica el uso de la "Ventana de comandos" como un shell matemático interactivo o la ejecución de archivos de texto que contienen código MATLAB. [33]
Variables
Las variables se definen utilizando el operador de asignación, =
. MATLAB es un lenguaje de programación de tipo débil porque los tipos se convierten implícitamente. [34] Es un lenguaje tipado inferido porque las variables pueden asignarse sin declarar su tipo, excepto si deben tratarse como objetos simbólicos, [35] y su tipo puede cambiar. Los valores pueden provenir de constantes , de cálculos que involucran valores de otras variables o de la salida de una función. Por ejemplo:
>> x = 17 x = 17>> x = 'sombrero' x = sombrero>> x = [ 3 * 4 , pi / 2 ] x = 12,0000 1,5708>> y = 3 * sin ( x ) y = -1,6097 3,0000
Vectores y matrices
Una matriz simple se define mediante la sintaxis de dos puntos: terminador de incremento inicial . Por ejemplo::
:
>> matriz = 1 : 2 : 9 matriz = 1 3 5 7 9
define una variable nombrada array
(o asigna un nuevo valor a una variable existente con el nombre array
) que es una matriz que consta de los valores 1, 3, 5, 7 y 9. Es decir, la matriz comienza en 1 (el valor inicial ) , aumenta con cada paso desde el valor anterior en 2 (el valor de incremento ) y se detiene una vez que alcanza (o está a punto de exceder) 9 (el valor del terminador ).
El valor de incremento se puede dejar fuera de esta sintaxis (junto con uno de los dos puntos), para usar un valor predeterminado de 1.
>> ari = 1 : 5 ari = 1 2 3 4 5
asigna a la variable denominada ari
una matriz con los valores 1, 2, 3, 4 y 5, ya que el valor predeterminado de 1 se utiliza como incremento.
La indexación está basada en uno, [36] que es la convención habitual para matrices en matemáticas, a diferencia de la indexación basada en cero que se usa comúnmente en otros lenguajes de programación como C, C ++ y Java.
Las matrices se pueden definir separando los elementos de una fila con un espacio en blanco o una coma y usando un punto y coma para terminar cada fila. La lista de elementos debe ir entre corchetes []
. Los paréntesis ()
se utilizan para acceder a elementos y subarreglos (también se utilizan para denotar una lista de argumentos de función).
>> A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 >> A ( 2 , 3 ) ans = 11
Los conjuntos de índices se pueden especificar mediante expresiones como 2:4
, que se evalúa como [2, 3, 4]
. Por ejemplo, una submatriz tomada de las filas 2 a 4 y las columnas 3 a 4 se puede escribir como:
>> A ( 2 : 4 , 3 : 4 ) ans = 11 8 7 12 14 1
Se puede generar una matriz de identidad cuadrada de tamaño n usando la función eye
, y se pueden generar matrices de cualquier tamaño con ceros o unos con las funciones zeros
y ones
, respectivamente.
>> ojo ( 3 , 3 ) ans = 1 0 0 0 1 0 0 0 1 >> ceros ( 2 , 3 ) ans = 0 0 0 0 0 0 >> unos ( 2 , 3 ) ans = 1 1 1 1 1 1
La transposición de un vector o una matriz se realiza mediante la función transpose
o agregando dot-prime después de la matriz (sin el punto, prime realizará la transposición conjugada para matrices complejas):
>> A = [ 1 ; 2 ], B = A . ' , C = transponer ( A ) A = 1 2B = 1 2 C = 1 2 >> D = [ 0 3 ; 1 5], D. ' D = 0 3 1 5 ans = 0 1 3 5
La mayoría de las funciones aceptan matrices como entrada y operan por elementos en cada elemento. Por ejemplo, mod(2*J,n)
multiplicará cada elemento en J por 2, y luego reducirá cada elemento módulo n . MATLAB incluye bucles estándar for
y while
, pero (como en otras aplicaciones similares como R ), se recomienda el uso de la notación vectorizada y, a menudo, su ejecución es más rápida. El siguiente código, extraído de la función magic.m , crea un cuadrado mágico M para valores impares de n (la función MATLAB meshgrid
se usa aquí para generar matrices cuadradas I y J que contienen 1: n ):
[ J , I ] = cuadrícula de malla ( 1 : n ); A = mod ( I + J - ( n + 3 ) / 2 , n ); B = mod ( I + 2 * J - 2 , n ); M = n * A + B + 1 ;
Estructuras
MATLAB admite tipos de datos de estructura. [37] Dado que todas las variables en MATLAB son matrices, un nombre más adecuado es "matriz de estructura", donde cada elemento de la matriz tiene los mismos nombres de campo. Además, MATLAB admite nombres de campo dinámicos [38] (búsquedas de campo por nombre, manipulaciones de campo, etc.).
Funciones
Al crear una función MATLAB, el nombre del archivo debe coincidir con el nombre de la primera función en el archivo. Los nombres de funciones válidos comienzan con un carácter alfabético y pueden contener letras, números o guiones bajos. Las variables y funciones distinguen entre mayúsculas y minúsculas. [39]
Asas de función
MATLAB admite elementos de cálculo lambda mediante la introducción de identificadores de función, [40] o referencias de función, que se implementan en archivos .m o funciones anónimas [41] / anidadas. [42]
Clases y programación orientada a objetos
MATLAB admite la programación orientada a objetos, incluidas clases, herencia , envío virtual, paquetes, semántica de paso por valor y semántica de paso por referencia . [43] Sin embargo, la sintaxis y las convenciones de llamada son significativamente diferentes de otros lenguajes. MATLAB tiene clases de valor y clases de referencia, dependiendo de si la clase tiene manejador como superclase (para clases de referencia) o no (para clases de valor). [44]
El comportamiento de la llamada al método es diferente entre clases de valor y de referencia. Por ejemplo, una llamada a un método:
objeto . método ();
puede alterar cualquier miembro del objeto solo si el objeto es una instancia de una clase de referencia; de lo contrario, los métodos de clase de valor deben devolver una nueva instancia si necesita modificar el objeto.
A continuación se proporciona un ejemplo de una clase simple:
classdef Hola métodos función saludar ( obj ) disp ( '¡Hola!' ) final finalfinal
Cuando se coloca en un archivo con nombre hello.m
, esto se puede ejecutar con los siguientes comandos:
>> x = Hola (); >> x . saludar ();¡Hola!
Programación gráfica y de interfaz gráfica de usuario
MATLAB tiene funciones de trazado de gráficos estrechamente integradas. Por ejemplo, la función gráfica se puede utilizar para producir una gráfica a partir de dos vectores x e y . El código:
x = 0 : pi / 100 : 2 * pi ; y = sin ( x ); trama ( x , y )
produce la siguiente figura de la función seno :
MATLAB también admite gráficos tridimensionales:
[ X , Y ] = rejilla de malla ( - 10 : 0,25 : 10 , - 10 : 0,25 : 10 ); f = sinc ( raíz cuadrada (( X / pi ) . ^ 2 + ( Y / pi ) . ^ 2 )); malla ( X , Y , f );eje ([ - 10 10 - 10 10 - 0,3 1 ]) xlabel ( '{\ bfx}' )ylabel ( '{\ bfy}' )zlabel ( '{\ bfsinc} ({\ bfR})' )escondido fuera | [ X , Y ] = rejilla de malla ( - 10 : 0,25 : 10 , - 10 : 0,25 : 10 ); f = sinc ( raíz cuadrada (( X / pi ) . ^ 2 + ( Y / pi ) . ^ 2 )); surf ( X , Y , f );eje ([ - 10 10 - 10 10 - 0,3 1 ]) xlabel ( '{\ bfx}' )ylabel ( '{\ bfy}' )zlabel ( '{\ bfsinc} ({\ bfR})' ) | |
Este código produce un diagrama 3D de estructura alámbrica de la función sinc no normalizada bidimensional : | Este código produce un gráfico de superficie 3D de la función sinc no normalizada bidimensional : | |
MATLAB admite el desarrollo de aplicaciones de interfaz gráfica de usuario (GUI). [45] Las interfaces de usuario se pueden generar mediante programación o utilizando entornos de diseño visual como GUIDE y App Designer . [46] [47]
MATLAB y otros lenguajes
MATLAB puede llamar a funciones y subrutinas escritas en los lenguajes de programación C o Fortran . [48] Se crea una función contenedora que permite pasar y devolver tipos de datos MATLAB. Los archivos MEX (ejecutables de MATLAB) son archivos de objetos cargables dinámicamente creados al compilar dichas funciones. [49] [50] Desde 2014, se agregó un aumento de la interfaz bidireccional con Python . [51] [52]
Las bibliotecas escritas en Perl , Java , ActiveX o .NET se pueden llamar directamente desde MATLAB, [53] [54] y muchas bibliotecas MATLAB (por ejemplo, soporte XML o SQL ) se implementan como envoltorios alrededor de las bibliotecas Java o ActiveX. Llamar a MATLAB desde Java es más complicado, pero se puede hacer con una caja de herramientas de MATLAB [55] que MathWorks vende por separado , o usando un mecanismo no documentado llamado JMI (Interfaz de Java a MATLAB), [56] [57] (que no debe confundirse con la interfaz de metadatos Java no relacionada que también se llama JMI). La API oficial de MATLAB para Java se agregó en 2016. [58]
Como alternativa a la caja de herramientas de matemáticas simbólicas basada en MuPAD disponible en MathWorks, MATLAB se puede conectar a Maple o Mathematica . [59] [60]
También existen bibliotecas para importar y exportar MathML . [61]
Aunque MATLAB es el paquete de software de cálculo numérico comercial más popular, [62] hay otras alternativas disponibles, como el lenguaje de cálculo de código abierto GNU Octave , el lenguaje de programación estadística R , el entorno informático Maple y el lenguaje computacional Julia . [62] [63]
Retirada de China
En 2020, los medios estatales chinos informaron que MATLAB había retirado los servicios de dos universidades chinas como resultado de las sanciones de EE. UU., Y dijeron que esto se responderá con un mayor uso de alternativas de código abierto y el desarrollo de alternativas nacionales. [64]
Historial de versiones
MATLAB se actualiza dos veces al año. [65] : 517 [32] Además de las nuevas funciones y otras mejoras, cada versión tiene nuevas correcciones de errores y cambios más pequeños. [66]
Versión [67] | Nombre de la versión | Número | JVM incluido | Año | Fecha de lanzamiento | Notas |
---|---|---|---|---|---|---|
MATLAB 1.0 | 1984 | |||||
MATLAB 2 | 1986 | |||||
MATLAB 3 | 1987 | Se presenta la primera caja de herramientas de Matlab; Se agregó soporte para ecuaciones diferenciales ordinarias . [24] : 81 | ||||
MATLAB 3.5 | 1990 | Funcionó en DOS pero necesitaba al menos un procesador 386 ; necesitaba un coprocesador matemático . | ||||
MATLAB 4 | 1992 | Se ejecutó en Windows 3.1xy Macintosh. | ||||
MATLAB 4.2c | 1994 | Se ejecutó en Windows 3.1x; necesitaba un coprocesador matemático . | ||||
MATLAB 5.0 | Volumen 8 | 1996 | Diciembre de 1996 | Lanzamientos unificados en todas las plataformas. | ||
MATLAB 5.1 | Volumen 9 | 1997 | Mayo de 1997 | |||
MATLAB 5.1.1 | R9.1 | |||||
MATLAB 5.2 | R10 | 1998 | Marzo de 1998 | Última versión funcionando en Mac clásicas. | ||
MATLAB 5.2.1 | R10.1 | |||||
MATLAB 5.3 | R11 | 1999 | Enero de 1999 | |||
MATLAB 5.3.1 | R11.1 | Noviembre de 1999 | ||||
MATLAB 6.0 | R12 | 12 | 1.1.8 | 2000 | Noviembre de 2000 | Primera versión con máquina virtual Java (JVM) incluida. |
MATLAB 6.1 | R12.1 | 1.3.0 | 2001 | Junio de 2001 | Última versión para Windows 95. | |
MATLAB 6.5 | R13 | 13 | 1.3.1 | 2002 | Julio de 2002 | |
MATLAB 6.5.1 | R13SP1 | 2003 | ||||
MATLAB 6.5.2 | R13SP2 | Última versión para Windows 98, Windows ME, IBM / AIX, Alpha / TRU64 y SGI / IRIX. [68] | ||||
MATLAB 7 | R14 | 14 | 1.4.2 | 2004 | Junio de 2004 | Introdujo funciones anónimas y anidadas; [69] reintroducido para Mac (bajo Mac OS X). |
MATLAB 7.0.1 | R14SP1 | Octubre de 2004 | ||||
R14SP1 + | 2004 | Noviembre de 2004 | Se presenta la caja de herramientas de computación paralela. [24] : 4 [70] : 3 | |||
MATLAB 7.0.4 | R14SP2 | 1.5.0 | 2005 | 7 de marzo de 2005 | Soporte agregado para archivos mapeados en memoria. [71] | |
MATLAB 7.1 | R14SP3 | 1.5.0 | 1 de septiembre de 2005 | Primera versión de 64 bits disponible para Windows XP de 64 bits. | ||
MATLAB 7.2 | R2006a | 15 | 1.5.0 | 2006 | 1 de marzo de 2006 | |
MATLAB 7.3 | R2006b | dieciséis | 1.5.0 | 1 de septiembre de 2006 | Se agregó compatibilidad con archivos MAT basados en HDF5 . | |
MATLAB 7.4 | R2007a | 17 | 1.5.0_07 | 2007 | 1 de marzo de 2007 | Se bsxfun agregó una nueva función para aplicar la operación binaria elemento por elemento con la expansión singleton habilitada. [72] |
MATLAB 7.5 | R2007b | 18 | 1.6.0 | 1 de septiembre de 2007 | Última versión para Windows 2000 y PowerPC Mac; Soporte del servidor de licencias para Windows Vista; [73] nuevo formato interno para código P. | |
MATLAB 7.6 | R2008a | 19 | 1.6.0 | 2008 | 1 de marzo de 2008 | Mejoras importantes en las capacidades de programación orientada a objetos con una nueva sintaxis de definición de clases; [74] capacidad para administrar espacios de nombres con paquetes. [75] |
MATLAB 7.7 | R2008b | 20 | 1.6.0_04 | 9 de octubre de 2008 | Última versión para procesadores sin SSE2; Nueva estructura de datos del mapa; [76] actualizaciones a generadores de números aleatorios. [77] | |
MATLAB 7.8 | R2009a | 21 | 1.6.0_04 | 2009 | 6 de marzo de 2009 | Primera versión para Microsoft Windows 7 de 32 bits y 64 bits; nueva interfaz externa para .NET Framework. [78] |
MATLAB 7.9 | R2009b | 22 | 1.6.0_12 | 4 de septiembre de 2009 | Primera versión para Mac Intel de 64 bits y última para Solaris SPARC ; nuevo uso del operador de tilde ( ~ ) para ignorar argumentos en llamadas a funciones. [79] [80] | |
MATLAB 7.9.1 | R2009bSP1 | 1.6.0_12 | 2010 | 1 de abril de 2010 | Corrección de errores. | |
MATLAB 7.10 | R2010a | 23 | 1.6.0_12 | 5 de marzo de 2010 | Última versión para Mac Intel de 32 bits . | |
MATLAB 7.11 | R2010b | 24 | 1.6.0_17 | 3 de septiembre de 2010 | Soporte agregado para enumeraciones; [81] características añadidas para ejecutar código MATLAB en GPU basadas en NVIDIA CUDA. [82] | |
MATLAB 7.11.1 | R2010bSP1 | 1.6.0_17 | 2011 | 17 de marzo de 2011 | Correcciones de errores y actualizaciones. | |
MATLAB 7.11.2 | R2010bSP2 | 1.6.0_17 | 5 de abril de 2012 [83] | Corrección de errores. | ||
MATLAB 7.12 | R2011a | 25 | 1.6.0_17 | 8 de abril de 2011 | Nueva rng función para controlar la generación de números aleatorios. [84] [85] [86] | |
MATLAB 7.13 | R2011b | 26 | 1.6.0_17 | 1 de septiembre de 2011 | Capacidad agregada para acceder / cambiar partes de variables directamente en archivos MAT, sin cargar en la memoria; [87] aumentó el número máximo de trabajadores locales con Parallel Computing Toolbox de 8 a 12. [88] | |
MATLAB 7.14 | R2012a | 27 | 1.6.0_17 | 2012 | 1 de marzo de 2012 | Última versión compatible con Linux de 32 bits. [89] |
MATLAB 8 | R2012b | 28 | 1.6.0_17 | 11 de septiembre de 2012 | Primera versión con interfaz Toolstrip ; [90] Se introdujeron las aplicaciones de MATLAB; [91] sistema de documentación rediseñado. | |
MATLAB 8.1 | R2013a | 29 | 1.6.0_17 | 2013 | 7 de marzo de 2013 | Nuevo marco de pruebas unitarias . [92] |
MATLAB 8.2 | R2013b | 30 | 1.7.0_11 | 6 de septiembre de 2013 [93] | Construido en Java Runtime Environment (JRE) actualizado a la versión 7; [94] Nuevo tipo de datos de tabla. [95] | |
MATLAB 8.3 | R2014a | 31 | 1.7.0_11 | 2014 | 7 de marzo de 2014 [96] | Configuración del compilador simplificada para construir archivos MEX; Compatibilidad con cámaras web USB en el núcleo MATLAB; el número de trabajadores locales ya no se limita a 12 con Parallel Computing Toolbox. |
MATLAB 8.4 | R2014b | 32 | 1.7.0_11 | 3 de octubre de 2014 | Nuevo motor gráfico basado en clases (también conocido como HG2); [97] función de tabulación en GUI; [98] empaquetado mejorado de la caja de herramientas del usuario y archivos de ayuda; [99] nuevos objetos para manipulaciones de fecha y hora; [100] Git - Integración de Subversion en IDE; [101] capacidades de big data con MapReduce (escalable a Hadoop ); [102] nuevo py paquete para usar Python desde dentro de MATLAB; [103] nueva interfaz de motor para llamar a MATLAB desde Python; [104] varias nuevas y mejoradas funciones: webread (servicios web RESTful con soporte JSON / XML), tcpclient (conexiones basada en sockets), histcounts , histogram , animatedline , y otros. | |
MATLAB 8.5 | R2015a | 33 | 1.7.0_60 | 2015 | 5 de marzo de 2015 | |
MATLAB 8.5 | R2015aSP1 | 1.7.0_60 | 14 de octubre de 2015 | Última versión compatible con Windows XP y Windows Vista. | ||
MATLAB 8.6 | R2015b | 34 | 1.7.0_60 | 3 de septiembre de 2015 | Nuevo motor de ejecución de MATLAB (también conocido como LXE); [105] graph y digraph clases para trabajar con gráficos y redes; [106] MinGW-w64 como compilador compatible en Windows; [107] última versión con soporte de 32 bits. | |
MATLAB 9.0 | R2016a | 35 | 1.7.0_60 | 2016 | 3 de marzo de 2016 | Live Scripts publicados: documentos interactivos que combinan texto, código y resultados (al estilo de la programación alfabetizada ); [108] Introducción de App Designer: un nuevo entorno de desarrollo para la creación de aplicaciones (con nuevos tipos de figuras, ejes y componentes de la interfaz de usuario); [109] pausar la ejecución de programas en ejecución utilizando un botón de pausa. |
MATLAB 9.1 | R2016b | 36 | 1.7.0_60 | 15 de septiembre de 2016 | Capacidad agregada para definir funciones locales en scripts; [110] expansión automática de dimensiones (anteriormente proporcionada mediante una llamada explícita a bsxfun ); tall matrices para Big data ; [111] nuevo string tipo; [112] nuevas funciones para codificar / decodificar JSON ; [113] API oficial de MATLAB Engine para Java. [58] | |
MATLAB 9.2 | R2017a | 37 | 1.7.0_60 | 2017 | 9 de marzo de 2017 | Lanzamiento de MATLAB Online: escritorio MATLAB basado en la nube al que se accede en un navegador web; [114] cadenas entre comillas dobles; nueva memoize función de Memoización ; validación ampliada de las propiedades del objeto; [115] marco de burla para pruebas unitarias; [116] MEX apunta a 64 bits por defecto; nueva heatmap función para crear gráficos de mapas de calor . [117] |
MATLAB 9.3 | R2017b | 38 | 1.8.0_121 | 21 de septiembre de 2017 | Introdujo un codificador de GPU que convierte código MATLAB en código CUDA para Nvidia. [118] | |
MATLAB 9.4 | R2018a | 39 | 1.8.0_144 | 2018 | 15 de marzo de 2018 [119] | Mejoras en el editor en vivo; introducción de la interfaz C ++ MEX; capacidad para personalizar la finalización de la pestaña; aplicaciones web. [120] |
MATLAB 9.5 | R2018b | 40 | 1.8.0_152 | 12 de septiembre de 2018 | Soporte agregado para proveedores en la nube, como Amazon Web Services; Caja de herramientas de red neuronal reemplazada por Caja de herramientas de aprendizaje profundo. [121] | |
MATLAB 9.6 | R2019a | 41 | 1.8.0_181 | 2019 | 20 de marzo de 2019 | Proyectos de MATLAB publicados; programación de máquina de estado agregada con Stateflow. [122] |
MATLAB 9.7 | R2019b | 42 | 1.8.0_202 | 11 de septiembre de 2019 | Introducción del bloque de 'argumentos' para la validación de entradas; habilitación de la indexación de puntos en salidas de función; introducción de las tareas de Live Editor. [123] | |
MATLAB 9.8 | R2020a | 2020 | 19 de marzo de 2020 | Eliminación de la computadora portátil Mupad; soporte mejorado para CPU AMD (AVX2); [124] codificación UTF-8 predeterminada para archivos de código MATLAB; [125] capacidad para crear aplicaciones independientes con Simulink. [126] | ||
MATLAB 9.9 | R2020b | 17 de septiembre de 2020 | Soporte mejorado para CPU AMD (AVX2); [124] versión en línea de Simulink. [127] |
El número (o número de versión) es la versión informada por el programa Concurrent License Manager FLEXlm . Para obtener una lista completa de los cambios tanto de MATLAB como de las cajas de herramientas oficiales, consulte las notas de la versión de MATLAB. [128]
Ver también
- Comparación de software de análisis numérico
- Lista de software de análisis numérico
Notas
- ^ a b https://fr.mathworks.com/help/matlab/release-notes.html .
- ^ "Proteja su código fuente" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Compatibilidad con la plataforma MEX" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Versiones de archivos MAT" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Guardar figura para reabrir en MATLAB más tarde" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Formato de archivo de código en vivo (.mlx)" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Diseñador de aplicaciones MATLAB" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Distribución de la caja de herramientas" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Archivo de instalación de la aplicación MATLAB" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Instalación del paquete de soporte" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Una entrevista con CLEVE MOLER realizada por Thomas Haigh el 8 y 9 de marzo de 2004 en Santa Bárbara, California" (PDF) . Museo de Historia de la Computación. Archivado desde el original (PDF) el 27 de diciembre de 2014 . Consultado el 6 de diciembre de 2016 .
Entonces APL, Speakeasy, LINPACK, EISPACK y PL0 fueron los predecesores de MATLAB.
- ^ Bezanson, Jeff; Karpinski, Stefan; Shah, viral; Edelman, Alan (14 de febrero de 2012). "Por qué creamos a Julia" . Julia Language . Consultado el 1 de diciembre de 2016 .
- ^ Eaton, John W. (21 de mayo de 2001). "Octava: pasado, presente y futuro" (PDF) . Consorcio de control y modelado de Texas-Wisconsin . Archivado desde el original (PDF) el 9 de agosto de 2017 . Consultado el 1 de diciembre de 2016 .
- ^ "Historia" . Scilab. Archivado desde el original el 1 de diciembre de 2016 . Consultado el 1 de diciembre de 2016 .
- ^ SM Grupa: INTLAB - LABORATORIO INTerval. En Tibor Csendes, editor, Developments in Reliable Computing, páginas 77-104. Editores académicos Kluwer, Dordrecht, 1999.
- ^ Moore, RE, Kearfott, RB y Cloud, MJ (2009). Introducción al análisis de intervalos. Sociedad de Matemáticas Industriales y Aplicadas .
- ^ Rabadilla, SM (2010). Métodos de verificación: resultados rigurosos utilizando aritmética de punto flotante. Acta Numerica , 19, 287–449.
- ^ Hargreaves, GI (2002). Análisis de intervalos en MATLAB. Algoritmos numéricos, (2009.1).
- ^ "La membrana en forma de L" . MathWorks. 2003 . Consultado el 7 de febrero de 2014 .
- ^ "Requisitos del sistema y disponibilidad de la plataforma" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ The MathWorks (febrero de 2020). "Descripción de la empresa" (PDF) .
- ^ a b c d e f g h Chonacky, N .; Winch, D. (2005). "Reseñas de Maple, Mathematica y Matlab: próximamente en una publicación cercana". Computación en ciencia e ingeniería . Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). 7 (2): 9–10. doi : 10.1109 / mcse.2005.39 . ISSN 1521-9615 . S2CID 29660034 .
- ^ a b c d e f g h Haigh, Thomas. "Cleve Moler: pionero del software matemático y creador de Matlab" (PDF) . IEEE Annals of the History of Computing . Sociedad de Informática IEEE.
- ^ a b c d e f g h yo Moler, Cleve; Little, Jack (12 de junio de 2020). "Una historia de MATLAB" . Actas del ACM sobre lenguajes de programación . Asociación de Maquinaria de Computación (ACM). 4 (HOPL): 1–67. doi : 10.1145 / 3386331 . ISSN 2475-1421 .
- ^ a b Xue, D .; Prensa, TU (2020). Programación MATLAB: soluciones de problemas matemáticos . De Gruyter STEM. De Gruyter. pag. 21. ISBN 978-3-11-066370-9. Consultado el 16 de septiembre de 2020 .
- ^ a b Prensa, CRC (2008). Resolución de problemas de matemáticas aplicadas con MATLAB . Prensa CRC. pag. 6. ISBN 978-1-4200-8251-7. Consultado el 16 de septiembre de 2020 .
- ^ Woodford, C .; Phillips, C. (2011). Métodos numéricos con ejemplos resueltos: Edición Matlab . SpringerLink: Bücher. Springer Holanda. pag. 1. ISBN 978-94-007-1366-6. Consultado el 16 de septiembre de 2020 .
- ^ Tranquillo, JV (2011). MATLAB para Ingeniería y Ciencias de la Vida . Biblioteca digital de síntesis de ingeniería e informática. Editores Morgan & Claypool. ISBN 978-1-60845-710-6. Consultado el 17 de septiembre de 2020 .
- ^ LoTurco, Lori (28 de enero de 2020). "Acelerando el ritmo de la ingeniería" . Noticias del MIT . Instituto de Tecnología de Massachusetts . Consultado el 16 de septiembre de 2020 .
- ^ Gatto, Marino; Rizzoli, Andrea (1993). "Revisión de MATLAB, versión 4.0". Modelado de recursos naturales . Wiley. 7 (1): 85–88. doi : 10.1111 / j.1939-7445.1993.tb00141.x . ISSN 0890-8575 .
- ^ Cho, M.J.; Martinez, W.L. (2014). Statistics in MATLAB: A Primer. Chapman & Hall/CRC Computer Science & Data Analysis. CRC Press. ISBN 978-1-4665-9657-3. Retrieved September 17, 2020.
- ^ a b Xue, D.; Chen, Y. (2013). System Simulation Techniques with MATLAB and Simulink. No Longer used. Wiley. p. 17. ISBN 978-1-118-69437-4. Retrieved October 15, 2020.
- ^ "MATLAB Documentation". MathWorks. Retrieved August 14, 2013.
- ^ "Comparing MATLAB with Other OO Languages". MATLAB. MathWorks. Retrieved August 14, 2013.
- ^ "Create Symbolic Variables and Expressions". Symbolic Math Toolbox. MathWorks. Retrieved August 14, 2013.
- ^ "Matrix Indexing". MathWorks. Retrieved August 14, 2013.
- ^ "Structures". MathWorks. Retrieved August 14, 2013.
- ^ "Generate Field Names from Variables". MathWorks. Retrieved August 14, 2013.
- ^ "Case and Space Sensitivity". MathWorks. Retrieved November 1, 2019.
- ^ "Function Handles". MathWorks. Retrieved August 14, 2013.
- ^ "Anonymous Functions". MathWorks. Retrieved August 14, 2013.
- ^ "Nested Functions". MathWorks.
- ^ "Object-Oriented Programming". MathWorks. Retrieved August 14, 2013.
- ^ "Comparing Handle and Value Classes". MathWorks.
- ^ "MATLAB GUI". MathWorks. April 30, 2011. Retrieved August 14, 2013.
- ^ "Create a Simple GUIDE GUI". MathWorks. Retrieved August 14, 2014.
- ^ "MATLAB App Designer". MathWorks. Retrieved November 1, 2019.
- ^ "Application Programming Interfaces to MATLAB". MathWorks. Retrieved August 14, 2013.
- ^ "Create MEX-Files". MathWorks. Retrieved August 14, 2013.
- ^ Spielman, Dan (February 10, 2004). "Connecting C and Matlab". Yale University, Computer Science Department. Retrieved May 20, 2008.
- ^ "MATLAB Engine for Python". MathWorks. Retrieved June 13, 2015.
- ^ "Call Python Libraries". MathWorks. Retrieved June 13, 2015.
- ^ "External Programming Language Interfaces". MathWorks. Retrieved August 14, 2013.
- ^ "Call Perl script using appropriate operating system executable". MathWorks. Retrieved November 7, 2013.
- ^ "MATLAB Builder JA". MathWorks. Retrieved June 7, 2010.
- ^ Altman, Yair (April 14, 2010). "Java-to-Matlab Interface". Undocumented Matlab. Archived from the original on September 5, 2015. Retrieved June 7, 2010.
- ^ Kaplan, Joshua. "matlabcontrol JMI".
- ^ a b "MATLAB Engine API for Java". MathWorks. Retrieved September 15, 2016.
- ^ Germundsson, Roger (September 30, 1998). "MaMa: Calling MATLAB from Mathematica with MathLink". Wolfram Research. Wolfram Library Archive.
- ^ rsmenon; szhorvat (2013). "MATLink: Communicate with MATLAB from Mathematica". Retrieved August 14, 2013.
- ^ Weitzel, Michael (September 1, 2006). "MathML import/export". MathWorks - File Exchange. Archived from the original on February 25, 2011. Retrieved August 14, 2013.
- ^ a b Popuri, SK; Gobbert, MK (2017). "A comparative evaulation of Matlab, Octave, R, and Julia on Maya". UMBC Faculty Collection. doi:10.13016/M2Q23R39S. Retrieved April 1, 2021.
- ^ Shaukat, Kamran, et al. "A Comparative Study of Numerical Analysis Packages." International Journal of Computer Theory and Engineering 10.3 (2018): 67-72.
- ^ "US military ban locks two Chinese universities out of popular software". South China Morning Post. June 12, 2020. Retrieved November 6, 2020.
- ^ Bober, W. (2013). Introduction to Numerical and Analytical Methods with MATLAB for Engineers and Scientists. CRC Press. p. 517. ISBN 978-1-4665-7609-4. Retrieved October 15, 2020.
- ^ Altman, Y.M. (2014). Accelerating MATLAB Performance: 1001 tips to speed up MATLAB programs. Taylor & Francis. p. 215. ISBN 978-1-4822-1129-0. Retrieved October 15, 2020.
- ^ Moler, Cleve (January 2006). "The Growth of MATLAB and The MathWorks over Two Decades". News & Notes Newsletter. MathWorks. Retrieved August 14, 2013.
- ^ "MATLAB System Requirements - Release 13". MathWorks. Retrieved October 6, 2015.
- ^ "Dynamic Function Creation with Anonymous and Nested Functions". MathWorks. Retrieved January 15, 2016.
- ^ MATLAB Parallel Computing Toolbox User's Guide (PDF)
- ^ "Memory Mapping". MathWorks. Retrieved January 22, 2014.
- ^ "MATLAB bsxfun". MathWorks. Retrieved January 22, 2014.
- ^ "Do MATLAB versions prior to R2007a run under Windows Vista?". MathWorks. September 3, 2010. Retrieved February 8, 2011.
- ^ "OOP Compatibility with Previous Versions". MathWorks. Retrieved March 11, 2013.
- ^ "Packages Create Namespaces". MathWorks. Retrieved January 22, 2014.
- ^ "Map Containers". MathWorks. Retrieved January 22, 2014.
- ^ "Creating and Controlling a Random Number Stream". MathWorks. Retrieved January 22, 2014.
- ^ "New MATLAB External Interfacing Features in R2009a". MathWorks. Retrieved January 22, 2014.
- ^ "Ignore Function Outputs". MathWorks. Retrieved January 22, 2014.
- ^ "Ignore Function Inputs". MathWorks. Retrieved January 22, 2014.
- ^ "Working with Enumerations". MathWorks. Retrieved January 22, 2014.
- ^ "MathWorks Announces Release 2010B Of The MATLAB And Simulink Product Families – EEJournal". EEJournal – Electronic Engineering Journal. September 3, 2010. Retrieved November 24, 2020.
- ^ "What's New in Release 2010b". MathWorks. Retrieved January 22, 2014.
- ^ "New RNG Function for Controlling Random Number Generation in Release 2011a". MathWorks. Retrieved January 22, 2014.
- ^ "MATLAB rng". MathWorks. Retrieved January 22, 2014.
- ^ "Replace Discouraged Syntaxes of rand and randn". MathWorks. Retrieved January 22, 2014.
- ^ "MATLAB matfile". MathWorks. Retrieved January 22, 2014.
- ^ "MATLAB max workers". Retrieved January 22, 2014.
- ^ MathWorks Support Team (June 4, 2015). "Is MATLAB supported on 32-bit Linux?".
Versions of MATLAB prior to R2012a are fully supported on 32-bit Linux. After R2012a, MATLAB is no longer supported on 32-bit Linux.
- ^ Shure, Loren (September 2012). "The MATLAB R2012b Desktop – Part 1: Introduction to the Toolstrip".
- ^ "MATLAB Apps". MathWorks. Retrieved August 14, 2013.
- ^ "MATLAB Unit Testing Framework". MathWorks. Retrieved August 14, 2013.
- ^ "MathWorks Announces Release 2013b of the MATLAB and Simulink Product Families". MathWorks. September 2013.
- ^ "R2013b Release Notes". MathWorks. Retrieved September 17, 2018.
- ^ "MATLAB Tables". MathWorks. Retrieved September 14, 2013.
- ^ "MathWorks Announces Release 2014a of the MATLAB and Simulink Product Families". MathWorks. Retrieved March 11, 2014.
- ^ "Graphics Changes in R2014b". MathWorks. Retrieved October 3, 2014.
- ^ "uitab: Create tabbed panel". MathWorks. Retrieved October 3, 2014.
- ^ "Create and Share Toolboxes". MathWorks. Retrieved October 3, 2014.
- ^ "Dates and Time". MathWorks. Retrieved October 3, 2014.
- ^ "Source Control Integration". MathWorks. Retrieved October 3, 2014.
- ^ "MATLAB MapReduce and Hadoop". MathWorks. Retrieved October 3, 2014.
- ^ "Call Python Libraries". MathWorks. Retrieved October 3, 2014.
- ^ "MATLAB Engine for Python". MathWorks. Retrieved October 3, 2014.
- ^ "MATLAB Execution Engine". MathWorks. Retrieved September 15, 2016.
- ^ "Graph and Network Algorithms". MathWorks. Retrieved September 15, 2016.
- ^ "Install MinGW-w64 Compiler". MathWorks. Retrieved September 15, 2016.
- ^ "What Is a Live Script?". MathWorks. Retrieved September 15, 2016.
- ^ "MATLAB App Designer". MathWorks. Retrieved September 15, 2016.
- ^ "Add Functions to Scripts". MathWorks. Retrieved September 15, 2016.
- ^ "Tall Arrays". MathWorks. Retrieved September 15, 2016.
- ^ "Create String Arrays". MathWorks. Retrieved September 15, 2016.
- ^ "JSON Format - MATLAB & Simulink". mathworks.com. Retrieved August 20, 2017.
- ^ "MATLAB Online". MathWorks. Retrieved April 10, 2017.
- ^ "Validate Property Values". MathWorks. Retrieved April 10, 2017.
- ^ "Mocking Framework". MathWorks. Retrieved April 10, 2017.
- ^ "Create Heatmap from Tabular Data". MathWorks. Retrieved April 10, 2017.
- ^ Morris, Kevin. "Deep Learning with MATLAB". Electronic Engineering Journal. Retrieved November 23, 2020.
- ^ "MathWorks Announces Release 2018a of the MATLAB and Simulink Product Families". MathWorks. Retrieved April 5, 2018.
- ^ "MATLAB adds new capabilities with Release R2018a". insideHPC. March 18, 2018. Retrieved November 23, 2020.
- ^ Michel, Stefanie (October 15, 2018). "Mathworks erweitert Deep-Learning-Funktionen im neuen Release". MM MaschinenMarkt (in German). Retrieved November 23, 2020.
- ^ "MathWorks announces release 2019b of MATLAB and Simulink". Evaluation Engineering. Retrieved November 23, 2020.
- ^ Schlichtmeier, Tobias (September 20, 2019). "Mathworks stellt Update vor: Release 2019b für Matlab und Simulink". Elektroniknet (in German). Retrieved November 23, 2020.
- ^ a b "Crippled No Longer: Matlab Now Runs on AMD CPUs at Full Speed - ExtremeTech". www.extremetech.com. Retrieved October 29, 2020.
- ^ "MathWorks delivers AI capabilities to engineers and scientists". Manufacturers' Monthly. May 8, 2020. Retrieved November 23, 2020.
- ^ "MathWorks Delivers Additional AI Capabilities with Release 2020a of MATLAB and Simulink". HPCwire. May 8, 2020. Retrieved November 23, 2020.
- ^ Manners, David (September 24, 2020). "MathWorks updates Simulink and MATLAB families". Electronics Weekly. Retrieved November 23, 2020.
- ^ "MATLAB Release Notes". MathWorks. Retrieved January 25, 2014.
Otras lecturas
- Gilat, Amos (2004). MATLAB: An Introduction with Applications 2nd Edition. John Wiley & Sons. ISBN 978-0-471-69420-5.
- Quarteroni, Alfio; Saleri, Fausto (2006). Scientific Computing with MATLAB and Octave. Springer. ISBN 978-3-540-32612-0.
- Ferreira, A.J.M. (2009). MATLAB Codes for Finite Element Analysis. Springer. ISBN 978-1-4020-9199-5.
- Lynch, Stephen (2004). Dynamical Systems with Applications using MATLAB. Birkhäuser. ISBN 978-0-8176-4321-8.
enlaces externos
- Official website
- MATLAB at Curlie