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 las 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. Llamando MATLAB de Java es más complicado, pero se puede hacer con una caja de herramientas de MATLAB [55] que se vende por separado por MathWorks , o utilizando un mecanismo de indocumentado llamado JMI (Java-a-MATLAB Interface), [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 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 crear 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 para Memorizació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 MEX C ++; 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; agregada programación de máquina de estado con Stateflow. [122] |
MATLAB 9.7 | R2019b | 42 | 1.8.0_202 | 11 de septiembre de 2019 | Introducción del bloque '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, MJ; Martínez, WL (2014). Estadísticas en MATLAB: A Primer . Chapman & Hall / CRC Informática y análisis de datos. Prensa CRC. ISBN 978-1-4665-9657-3. Consultado el 17 de septiembre de 2020 .
- ^ a b Xue, D .; Chen, Y. (2013). Técnicas de simulación de sistemas con MATLAB y Simulink . Ya no se usa. Wiley. pag. 17. ISBN 978-1-118-69437-4. Consultado el 15 de octubre de 2020 .
- ^ "Documentación de MATLAB" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Comparación de MATLAB con otros lenguajes OO" . MATLAB . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Crear Variables y Expresiones Simbólicas" . Caja de herramientas de matemáticas simbólicas . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Indexación matricial" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Estructuras" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Generar nombres de campo a partir de variables" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Sensibilidad de caso y espacio" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Asas de función" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Funciones anónimas" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Funciones anidadas" . MathWorks.
- ^ "Programación Orientada a Objetos" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Comparación de clases de identificador y valor" . MathWorks.
- ^ "GUI DE MATLAB" . MathWorks. 30 de abril de 2011 . Consultado el 14 de agosto de 2013 .
- ^ "Cree una GUI GUI sencilla" . MathWorks . Consultado el 14 de agosto de 2014 .
- ^ "Diseñador de aplicaciones MATLAB" . MathWorks . Consultado el 1 de noviembre de 2019 .
- ^ "Interfaces de programación de aplicaciones para MATLAB" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Crear archivos MEX" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ Spielman, Dan (10 de febrero de 2004). "Conexión de C y Matlab" . Universidad de Yale, Departamento de Ciencias de la Computación . Consultado el 20 de mayo de 2008 .
- ^ "Motor MATLAB para Python" . MathWorks . Consultado el 13 de junio de 2015 .
- ^ "Llamar a las bibliotecas de Python" . MathWorks . Consultado el 13 de junio de 2015 .
- ^ "Interfaces de lenguaje de programación externo" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Llame al script de Perl usando el ejecutable del sistema operativo apropiado" . MathWorks . Consultado el 7 de noviembre de 2013 .
- ^ "MATLAB Builder JA" . MathWorks . Consultado el 7 de junio de 2010 .
- ^ Altman, Yair (14 de abril de 2010). "Interfaz de Java a Matlab" . Matlab indocumentado. Archivado desde el original el 5 de septiembre de 2015 . Consultado el 7 de junio de 2010 .
- ^ Kaplan, Joshua. "matlabcontrol JMI" .
- ^ a b "API de MATLAB Engine para Java" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ Germundsson, Roger (30 de septiembre de 1998). "MaMa: llamar a MATLAB desde Mathematica con MathLink" . Wolfram Research . Archivo de la biblioteca Wolfram.
- ^ rsmenon; szhorvat (2013). "MATLink: comunicarse con MATLAB de Mathematica" . Consultado el 14 de agosto de 2013 .
- ^ Weitzel, Michael (1 de septiembre de 2006). "Importación / exportación de MathML" . MathWorks: intercambio de archivos. Archivado desde el original el 25 de febrero de 2011 . Consultado el 14 de agosto de 2013 .
- ^ a b Popuri, SK; Gobbert, MK (2017). "Una evaluación comparativa de Matlab, Octave, R y Julia en Maya" . Colección Facultad UMBC . doi : 10.13016 / M2Q23R39S . Consultado el 1 de abril de 2021 .
- ^ Shaukat, Kamran y col. "Un estudio comparativo de paquetes de análisis numérico". Revista Internacional de Teoría e Ingeniería de Computadoras 10.3 (2018): 67-72.
- ^ "La prohibición militar estadounidense bloquea a dos universidades chinas del software popular" . Poste de la mañana del sur de China . 12 de junio de 2020 . Consultado el 6 de noviembre de 2020 .
- ^ Bober, W. (2013). Introducción a los métodos numéricos y analíticos con MATLAB para ingenieros y científicos . Prensa CRC. pag. 517. ISBN 978-1-4665-7609-4. Consultado el 15 de octubre de 2020 .
- ^ Altman, YM (2014). Aceleración del rendimiento de MATLAB: 1001 consejos para acelerar los programas de MATLAB . Taylor y Francis. pag. 215. ISBN 978-1-4822-1129-0. Consultado el 15 de octubre de 2020 .
- ^ Moler, Cleve (enero de 2006). "El crecimiento de MATLAB y MathWorks durante dos décadas" . Boletín de noticias y notas . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Requisitos del sistema MATLAB - Versión 13" . MathWorks . Consultado el 6 de octubre de 2015 .
- ^ "Creación de funciones dinámicas con funciones anónimas y anidadas" . MathWorks . Consultado el 15 de enero de 2016 .
- ^ Guía del usuario de MATLAB Parallel Computing Toolbox (PDF)
- ^ "Mapeo de la memoria" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "MATLAB bsxfun" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "¿Las versiones de MATLAB anteriores a R2007a se ejecutan en Windows Vista?" . MathWorks. 3 de septiembre de 2010 . Consultado el 8 de febrero de 2011 .
- ^ "Compatibilidad POO con versiones anteriores" . MathWorks . Consultado el 11 de marzo de 2013 .
- ^ "Los paquetes crean espacios de nombres" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Mapa de contenedores" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Creación y control de una secuencia de números aleatorios" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Nuevas funciones de interfaz externa de MATLAB en R2009a" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Ignorar salidas de función" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Ignorar entradas de función" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Trabajar con enumeraciones" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "MathWorks anuncia la versión 2010B de las familias de productos MATLAB y Simulink - EEJournal" . EEJournal - Revista de ingeniería electrónica . 3 de septiembre de 2010 . Consultado el 24 de noviembre de 2020 .
- ^ "Novedades de la versión 2010b" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Nueva función RNG para controlar la generación de números aleatorios en la versión 2011a" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "MATLAB rng" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Reemplazar sintaxis desalentada de rand y randn" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "MATLAB matfile" . MathWorks . Consultado el 22 de enero de 2014 .
- ^ "Trabajadores de MATLAB max" . Consultado el 22 de enero de 2014 .
- ^ Equipo de soporte de MathWorks (4 de junio de 2015). "¿MATLAB es compatible con Linux de 32 bits?" .
Las versiones de MATLAB anteriores a R2012a son totalmente compatibles con Linux de 32 bits. Después de R2012a, MATLAB ya no es compatible con Linux de 32 bits.
- ^ Shure, Loren (septiembre de 2012). "El escritorio MATLAB R2012b - Parte 1: Introducción a la barra de herramientas" .
- ^ "Aplicaciones MATLAB" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "Marco de pruebas unitarias de MATLAB" . MathWorks . Consultado el 14 de agosto de 2013 .
- ^ "MathWorks anuncia la versión 2013b de las familias de productos MATLAB y Simulink" . MathWorks. Septiembre 2013.
- ^ "Notas de la versión R2013b" . MathWorks . Consultado el 17 de septiembre de 2018 .
- ^ "Tablas MATLAB" . MathWorks . Consultado el 14 de septiembre de 2013 .
- ^ "MathWorks anuncia la versión 2014a de las familias de productos MATLAB y Simulink" . MathWorks . Consultado el 11 de marzo de 2014 .
- ^ "Cambios de gráficos en R2014b" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "uitab: Crear panel con pestañas" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Crear y compartir cajas de herramientas" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Fechas y Hora" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Integración de control de fuente" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "MATLAB MapReduce y Hadoop" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Llamar a las bibliotecas de Python" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Motor MATLAB para Python" . MathWorks . Consultado el 3 de octubre de 2014 .
- ^ "Motor de ejecución de MATLAB" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Algoritmos de gráficos y redes" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Instale el compilador MinGW-w64" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "¿Qué es un guión en vivo?" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Diseñador de aplicaciones MATLAB" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Agregar funciones a los scripts" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Matrices altas" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Crear matrices de cadenas" . MathWorks . Consultado el 15 de septiembre de 2016 .
- ^ "Formato JSON - MATLAB & Simulink" . mathworks.com . Consultado el 20 de agosto de 2017 .
- ^ "MATLAB en línea" . MathWorks . Consultado el 10 de abril de 2017 .
- ^ "Validar valores de propiedad" . MathWorks . Consultado el 10 de abril de 2017 .
- ^ "Marco burlón" . MathWorks . Consultado el 10 de abril de 2017 .
- ^ "Crear mapa de calor a partir de datos tabulares" . MathWorks . Consultado el 10 de abril de 2017 .
- ^ Morris, Kevin. "Aprendizaje profundo con MATLAB" . Revista de Ingeniería Electrónica . Consultado el 23 de noviembre de 2020 .
- ^ "MathWorks anuncia la versión 2018a de las familias de productos MATLAB y Simulink" . MathWorks . Consultado el 5 de abril de 2018 .
- ^ "MATLAB agrega nuevas capacidades con la versión R2018a" . insideHPC . 18 de marzo de 2018 . Consultado el 23 de noviembre de 2020 .
- ^ Michel, Stefanie (15 de octubre de 2018). "Mathworks erweitert Deep-Learning-Funktionen im neuen Release" . MM MaschinenMarkt (en alemán) . Consultado el 23 de noviembre de 2020 .
- ^ "MathWorks anuncia el lanzamiento 2019b de MATLAB y Simulink" . Ingeniería de Evaluación . Consultado el 23 de noviembre de 2020 .
- ^ Schlichtmeier, Tobias (20 de septiembre de 2019). "Mathworks stellt Update vor: Release 2019b für Matlab und Simulink" . Elektroniknet (en alemán) . Consultado el 23 de noviembre de 2020 .
- ^ a b "Ya no está lisiado: Matlab ahora se ejecuta en CPU AMD a máxima velocidad - ExtremeTech" . www.extremetech.com . Consultado el 29 de octubre de 2020 .
- ^ "MathWorks ofrece capacidades de inteligencia artificial a ingenieros y científicos" . Mensual de los fabricantes . 8 de mayo de 2020 . Consultado el 23 de noviembre de 2020 .
- ^ "MathWorks ofrece capacidades de inteligencia artificial adicionales con la versión 2020a de MATLAB y Simulink" . HPCwire . 8 de mayo de 2020 . Consultado el 23 de noviembre de 2020 .
- ^ Manners, David (24 de septiembre de 2020). "MathWorks actualiza las familias de Simulink y MATLAB" . Electrónica semanal . Consultado el 23 de noviembre de 2020 .
- ^ "Notas de la versión de MATLAB" . MathWorks . Consultado el 25 de enero de 2014 .
Otras lecturas
- Gilat, Amos (2004). MATLAB: Introducción a las aplicaciones 2ª edición . John Wiley e hijos. ISBN 978-0-471-69420-5.
- Quarteroni, Alfio; Saleri, Fausto (2006). Computación científica con MATLAB y Octave . Saltador. ISBN 978-3-540-32612-0.
- Ferreira, AJM (2009). Códigos MATLAB para análisis de elementos finitos . Saltador. ISBN 978-1-4020-9199-5.
- Lynch, Stephen (2004). Sistemas dinámicos con aplicaciones usando MATLAB . Birkhäuser. ISBN 978-0-8176-4321-8.
enlaces externos
- Página web oficial
- MATLAB en Curlie