MATLAB
MATLAB (una abreviatura de "MATrix LABoratory") es un lenguaje de programación multiparadigma patentado y un entorno de computación numérica desarrollado por MathWorks. MATLAB permite la manipulación de matrices, el trazado de funciones y datos, la implementación de algoritmos, la creación de interfaces de usuario y la interfaz con programas escritos en otros lenguajes.
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 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.
Desde 2020, MATLAB tiene más de 4 millones de usuarios en todo el mundo. Provienen de diversos antecedentes de ingeniería, ciencia y economía.
Historia
Orígenes
MATLAB fue inventado por el matemático y programador informático Cleve Moler. La idea de MATLAB se basó en su tesis doctoral de la década de 1960. Moler se convirtió en profesor de matemáticas en la Universidad de Nuevo México y comenzó a desarrollar MATLAB para sus alumnos como pasatiempo. Desarrolló la programación de álgebra lineal inicial de MATLAB en 1967 con su antiguo asesor de tesis, George Forsythe. Esto fue seguido por el código Fortran para ecuaciones lineales en 1971.
Al principio (antes de la versión 1.0) MATLAB "no era un lenguaje de programación; era una sencilla calculadora matricial interactiva. No había programas, ni cajas de herramientas, ni gráficos. Y sin ODE ni FFT."
La primera versión temprana de MATLAB se completó a fines de la década de 1970. El software se dio a conocer al público por primera vez en febrero de 1979 en la Escuela Naval de Posgrado en California. Las primeras versiones de MATLAB eran simples calculadoras matriciales con 71 funciones predefinidas. En ese momento, MATLAB se distribuía de forma gratuita a las universidades. 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.
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 de IBM que reemplazaban a las computadoras centrales en ese momento. 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.
Desarrollo comercial
MATLAB se lanzó por primera vez como producto comercial en 1984 en la Conferencia de Control Automático en Las Vegas. Se fundó MathWorks, Inc. para desarrollar el software y se lanzó el lenguaje de programación MATLAB. La primera venta de MATLAB fue al año siguiente, cuando Nick Trefethen del Instituto de Tecnología de Massachusetts compró diez copias.
A finales de la década de 1980, se habían vendido varios cientos de copias de MATLAB a universidades para uso de los estudiantes. El software se popularizó en gran medida gracias a las cajas de herramientas creadas por expertos en diversos campos para realizar tareas matemáticas especializadas. Muchas de las cajas de herramientas se desarrollaron como resultado de que los estudiantes de Stanford usaran MATLAB en el mundo académico y luego llevaran el software al sector privado.
Con el tiempo, MATLAB se reescribió para los primeros sistemas operativos creados por Digital Equipment Corporation, VAX, Sun Microsystems y para PC Unix. La versión 3 se lanzó en 1987. El primer compilador de MATLAB fue desarrollado por Stephen C. Johnson en la década de 1990.
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. Parallel Computing Toolbox de MATLAB se lanzó en 2004 Conferencia de supercomputación y soporte para unidades de procesamiento de gráficos (GPU) se le agregó en 2010.
Historia reciente
Se realizaron algunos cambios especialmente importantes en el software con la versión 8 en 2012. Se modificó la interfaz de usuario y se amplió la funcionalidad de Simulink. Para 2016, MATLAB había introducido varias mejoras técnicas y de interfaz de usuario, incluido el portátil MATLAB Live Editor y otras características.
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 ejecutando archivos de texto que contienen código MATLAB.
Variables
Las variables se definen mediante el operador de asignación, =
. MATLAB es un lenguaje de programación débilmente tipado porque los tipos se convierten implícitamente. Es un lenguaje tipado inferido porque las variables se pueden asignar sin declarar su tipo, excepto si se van a tratar como objetos simbólicos y su tipo puede cambiar. Los valores pueden provenir de constantes, de cálculos que involucren valores de otras variables o de la salida de una función. Por ejemplo:
> x = 17x 17> x = 'hat 'xsombrero> x = [3*4, pi/2]x 12.0000 1,5708> Sí. = 3*pecado()x)Y -1.6097 3.0000
Vectores y matrices
Una matriz simple se define usando la sintaxis de dos puntos: inicial:incremento:terminador. Por ejemplo:
> array = 1:2:9array = 1 3 5 7 9
define una variable llamada 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), se incrementa con cada paso desde el valor anterior en 2 (el valor incremento), y se detiene una vez que alcanza (o está a punto de superar) 9 (el valor terminador).
El valor de incremento en realidad se puede dejar fuera de esta sintaxis (junto con uno de los dos puntos), para usar un valor predeterminado de 1.
> ari = 1:5ari = 1 2 3 4 5
asigne a la variable llamada ari
una matriz con los valores 1, 2, 3, 4 y 5, ya que el valor predeterminado de 1 se usa como incremento.
La indexación se basa en uno, que es la convención habitual para las 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 estar entre corchetes []
. Los paréntesis ()
se utilizan para acceder a elementos y subarreglos (también se utilizan para denotar una lista de argumentos de funciones).
> 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 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 ceros
y unos
, respectivamente.
> ojo()3,3)ans = 1 0 0 0 1 0 0 0 1> ceros()2,3)ans = 0 0 0 0 0 0> uno()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 un punto-primo después de la matriz (sin el punto, el primer realizará la transposición conjugada para matrices complejas):
> A = [1 ; 2] B = A.', C = transpose()A)A = 1 2B = 1 2C = 1 2> D = [0, 3 ; 1, 5] D.'D = 0 3 1 5ans = 0 1 3 5
La mayoría de las funciones aceptan matrices como entrada y operan elemento a elemento 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 (al igual que en otras aplicaciones similares como R), se recomienda el uso de la notación vectorizada y, a menudo, es más rápido de ejecutar. El siguiente código, extraído de la función magic.m, crea un cuadrado mágico M para valores impares de n (función MATLAB meshgrid
se usa aquí para generar matrices cuadradas I y J que contienen 1:n):
[J,I] = meshgrid()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. 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 campos dinámicos (búsquedas de campos por nombre, manipulaciones de campos, etc.).
Funciones
Al crear una función de MATLAB, el nombre del archivo debe coincidir con el nombre de la primera función del archivo. Los nombres de función 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.
rgb Imagen = imread()'ecg.png ');grayImage = rgb2gray()rgb Imagen); % para imágenes no indexadasnivel = graythresh()grayImage); % umbral para la conversión de la imagen a binario, binario Imagen = im2bw()grayImage, nivel); % Extraiga los canales individuales de color rojo, verde y azul.RedChannel = rgb Imagen(: : 1);verde = rgb Imagen(: : 2);BlueChannel = rgb Imagen(: : 3);% Haz las partes negras puras rojas.RedChannel()~binario Imagen) = 255;verde()~binario Imagen) = 0;BlueChannel()~binario Imagen) = 0;% Ahora recombine para formar la imagen de salida.rgbImage Fuera = gato()3, RedChannel, verde, BlueChannel);imshow()rgbImage Fuera);
Manejadores de funciones
MATLAB admite elementos de cálculo lambda mediante la introducción de identificadores de funciones o referencias a funciones, que se implementan en archivos.m o en funciones anónimas/anidadas.
Clases y programación orientada a objetos
MATLAB admite la programación orientada a objetos, incluidas las clases, la herencia, el envío virtual, los paquetes, la semántica de paso por valor y la semántica de paso por referencia. Sin embargo, la sintaxis y las convenciones de llamadas son significativamente diferentes de otros lenguajes. MATLAB tiene clases de valor y clases de referencia, dependiendo de si la clase tiene control como superclase (para clases de referencia) o no (para clases de valor).
El comportamiento de las llamadas a métodos es diferente entre las clases de valor y de referencia. Por ejemplo, una llamada a un método:
objeto.método();
puede modificar cualquier miembro de objeto solo si 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 salud()obj) disp()¡Hola! ') final finalfinal
Cuando se coloca en un archivo llamado hello.m
, se puede ejecutar con los siguientes comandos:
> x = Hola.();> x.salud();¡Hola!
Programación de gráficos e interfaz gráfica de usuario
MATLAB tiene funciones de trazado de gráficos estrechamente integradas. Por ejemplo, la función plot se puede utilizar para generar un gráfico a partir de dos vectores x e y. El código:
x = 0:pi/100:2*pi;Sí. = pecado()x);parcela()x,Sí.)
produce la siguiente figura de la función seno:
MATLAB también admite gráficos tridimensionales:
MATLAB admite el desarrollo de aplicaciones de interfaz gráfica de usuario (GUI). Las interfaces de usuario se pueden generar mediante programación o utilizando entornos de diseño visual como GUIDE y App Designer.
MATLAB y otros lenguajes
MATLAB puede llamar a funciones y subrutinas escritas en los lenguajes de programación C o Fortran. Se crea una función contenedora que permite pasar y devolver tipos de datos de MATLAB. Los archivos MEX (ejecutables de MATLAB) son los archivos de objetos cargables dinámicamente creados al compilar dichas funciones. Desde 2014, se agregó una interfaz bidireccional cada vez mayor con Python.
Las bibliotecas escritas en Perl, Java, ActiveX o.NET se pueden llamar directamente desde MATLAB, y muchas bibliotecas de MATLAB (por ejemplo, compatibilidad con XML o SQL) se implementan como contenedores de bibliotecas Java o ActiveX. Llamar a MATLAB desde Java es más complicado, pero se puede hacer con una caja de herramientas de MATLAB que MathWorks vende por separado, o usando un mecanismo no documentado llamado JMI (interfaz de Java a MATLAB), (que no debe confundirse con los metadatos de Java no relacionados). Interfaz que también se llama JMI). La API oficial de MATLAB para Java se agregó en 2016.
Como alternativa a la caja de herramientas matemática simbólica basada en MuPAD disponible en MathWorks, MATLAB se puede conectar a Maple o Mathematica.
También existen bibliotecas para importar y exportar MathML.
Si bien MATLAB es el paquete de software comercial de computación numérica más popular, hay otras alternativas disponibles, como el lenguaje de computación de código abierto GNU Octave, el lenguaje de programación estadística R, el entorno informático Maple y el lenguaje computacional Julia. Sin embargo, Python, con sus numerosas bibliotecas para aplicaciones numéricas (NumPy, SciPy, Matplotlib, etc.) y su gran flexibilidad como lenguaje de secuencias de comandos multiplataforma totalmente ampliable, es probablemente la alternativa más importante y ampliamente utilizada en la actualidad.
Relaciones con las sanciones de EE. UU.
En 2020, MATLAB retiró los servicios de dos universidades chinas como resultado de las sanciones estadounidenses. Las universidades dijeron que se responderá a esto mediante un mayor uso de alternativas de código abierto y mediante el desarrollo de alternativas nacionales.
Historial de versiones
MATLAB se actualiza dos veces al año. Además de las nuevas funciones y otras mejoras, cada versión tiene nuevas correcciones de errores y cambios más pequeños.
Versión | Nombre de la liberación | Número | Bundled JVM | Año | Fecha de lanzamiento | Notas |
---|---|---|---|---|---|---|
1.0 | 1984 | |||||
2 | 1986 | |||||
3 | 1987 | Primera caja de herramientas Matlab introducida; soporte para ecuaciones diferenciales comunes añadidos. | ||||
3.5 | 1990 | Ran en DOS, el requisito más bajo es un Intel 8088; Math Processor es compatible, sin embargo tenía problemas de compatibilidad con NEC v20 + Intel 8087 combinación. | ||||
4 | 1992 | Ran en Windows 3.1x y Macintosh. | ||||
4.2c | 1994 | Ran en Windows 3.1x; necesitaba un coprocesador de matemáticas. | ||||
5.0 | Volumen 8 | 1996 | Diciembre de 1996 | Liberaciones unificadas en todas las plataformas. | ||
5.1 | Volumen 9 | 1997 | Mayo de 1997 | |||
5.1.1 | R9.1 | |||||
5.2 | R10 | 1998 | Marzo de 1998 | Última versión trabajando en Macs clásicos. | ||
5.2.1 | R10.1 | |||||
5.3 | R11 | 1999 | Enero de 1999 | |||
5.3.1 | R11.1 | Noviembre de 1999 | ||||
6.0 | R12 | 12 | 1.1.8 | 2000 | Noviembre de 2000 | Primera versión con máquina virtual de Java (JVM). |
6.1 | R12.1 | 1.3.0 | 2001 | Junio de 2001 | Última versión para Windows 95. | |
6.5 | R13 | 13 | 1.3.1 | 2002 | Julio de 2002 | |
6.5.1 | R13SP1 | 2003 | ||||
6.5.2 | R13SP2 | Última versión para Windows 98, Windows ME, IBM/AIX, Alpha/TRU64 y SGI/IRIX. | ||||
7 | R14 | 14 | 1.4.2 | 2004 | Junio de 2004 | Introdujo funciones anónimas y anidadas; reintroducida para Mac (bajo Mac OS X). |
7.0.1 | R14SP1 | Octubre de 2004 | ||||
R14SP1+ | 2004 | Noviembre de 2004 | Parallel Computing Toolbox introducido. | |||
7.0.4 | R14SP2 | 1.5.0 | 2005 | 7 de marzo de 2005 | Soporte añadido para archivos con memoria. | |
7.1 | R14SP3 | 1.5.0 | 1o de septiembre de 2005 | Primera versión de 64 bits disponible para Windows XP 64-bit. | ||
7.2 | R2006a | 15 | 1.5.0 | 2006 | 1o de marzo de 2006 | |
7.3 | R2006b | 16 | 1.5.0 | 1o de septiembre de 2006 | Soporte de archivo MAT basado en HDF5 añadido. | |
7.4 | R2007a | 17 | 1.5.0_07 | 2007 | 1° de marzo de 2007 | Nuevo bsxfun función agregada para aplicar la operación binaria elemento-por-elemento con la ampliación de singleton habilitada.
|
7.5 | R2007b | 18 | 1.6.0 | Septiembre 1, 2007 | Última versión para Windows 2000 y PowerPC Mac; Soporte para servidor de licencias para Windows Vista; nuevo formato interno para código P. | |
7.6 | R2008a | 19 | 1.6.0 | 2008 | 1o de marzo de 2008 | Mejoras importantes para habilidades de programación orientadas a objetos con una nueva sintaxis de definición de clase; capacidad para gestionar espacios de nombres con paquetes. |
7.7 | R2008b | 20 | 1.6.0_04 | 9 de octubre de 2008 | Última versión para procesadores w/o SSE2; Nueva estructura de datos de mapa; actualizaciones a generadores de números aleatorios. | |
7.8 | R2009a | 21 | 1.6.0_04 | 2009 | 6 de marzo de 2009 | Primera versión para Microsoft 32-bit & 64-bit Windows 7; nueva interfaz externa a. Marco NET. |
7.9 | R2009b | 22 | 1.6.0_12 | 4 de septiembre de 2009 | Primer lanzamiento para Intel 64-bit Mac, y último para Solaris SPARC; nuevo uso para el operador de inclinación (~ ) ignorar los argumentos en las llamadas de función.
| |
7.9.1 | R2009bSP1 | 1.6.0_12 | 2010 | 1 de abril de 2010 | Corrección de errores. | |
7.10 | R2010a | 23 | 1.6.0_12 | 5 de marzo de 2010 | Última liberación para Intel 32-bit Mac. | |
7.11 | R2010b | 24 | 1.6.0_17 | 3 de septiembre de 2010 | Soporte añadido para enumeraciones; características adicionales para ejecutar código MATLAB en GPUs basados en NVIDIA CUDA. | |
7.11.1 | R2010bSP1 | 1.6.0_17 | 2011 | 17 de marzo de 2011 | Corrección de errores y actualizaciones. | |
7.11.2 | R2010bSP2 | 1.6.0_17 | 5 de abril de 2012 | Corrección de errores. | ||
7.12 | R2011a | 25 | 1.6.0_17 | 8 de abril de 2011 | Nuevo rng función para controlar la generación de números aleatorios.
| |
7.13 | R2011b | 26 | 1.6.0_17 | Septiembre 1, 2011 | Posibilidad de acceso/cambiar partes de variables directamente en los archivos MAT, sin cargar en la memoria; aumento máximo de trabajadores locales con Parallel Computing Toolbox de 8 a 12. | |
7.14 | R2012a | 27 | 1.6.0_17 | 2012 | 1 de marzo de 2012 | Última versión con soporte Linux de 32 bits. |
8 | R2012b | 28 | 1.6.0_17 | 11 de septiembre de 2012 | Primera versión con la interfaz Herramientastrip; MATLAB Apps introducidas; sistema de documentación rediseñado. | |
8.1 | R2013a | 29 | 1.6.0_17 | 2013 | 7 de marzo de 2013 | Nuevo marco de pruebas unitarias. |
8.2 | R2013b | 30 | 1.7.0_11 | 6 de septiembre de 2013 | Construido en Java Runtime Environment (JRE) actualizado a la versión 7; New table data type. | |
8.3 | R2014a | 31 | 1.7.0_11 | 2014 | 7 de marzo de 2014 | Configuración simplificada del compilador para la construcción de archivos MEX; soporte USB Webcams en el núcleo MATLAB; número de trabajadores locales ya no limitado a 12 con Parallel Computing Toolbox. |
8.4 | R2014b | 32 | 1.7.0_11 | 3 de octubre de 2014 | Nuevo motor gráfico basado en la clase (a.k.a. HG2); función de tabbing en GUI; embalaje mejorado de la caja de herramientas de usuario y archivos de ayuda; nuevos objetos para manipulaciones fechadas; integración de Git-Subversion en IDE; habilidades de datos grandes con MapReduce (scalable a Hadoop); nuevo py paquete para utilizar Python desde el interior de MATLAB; nueva interfaz de motor para llamar MATLAB de Python; varias funciones nuevas y mejoradas: webread (Servicios web completos con soporte JSON/XML) tcpclient (conexiones basadas en el socket), histcounts , histogram , animatedline , y otros.
| |
8,5 | R2015a | 33 | 1.7.0_60 | 2015 | 5 de marzo de 2015 | |
8,5 | R2015aSP1 | 1.7.0_60 | Octubre 14, 2015 | Última versión soportando Windows XP y Windows Vista. | ||
8.6 | R2015b | 34 | 1.7.0_60 | Septiembre 3, 2015 | Nuevo motor de ejecución del MATLAB (a.k.a. LXE); graph y digraph clases para trabajar con gráficos y redes; MinGW-w64 como compilador compatible en Windows; última versión con soporte de 32 bits.
| |
9.0 | R2016a | 35 | 1.7.0_60 | 2016 | Marzo 3, 2016 | Scripts en vivo lanzados: documentos interactivos que combinan texto, código y salida (en el estilo de programación de Literate); App Designer introdujo: un nuevo entorno de desarrollo para aplicaciones de construcción (con nuevas figuras de interfaz de usuario, ejes y componentes); deshacer la ejecución de programas de ejecución utilizando un botón de pausa. |
9.1 | R2016b | 36 | 1.7.0_60 | Septiembre 15, 2016 | Posibilidad de definir funciones locales en scripts; expansión automática de dimensiones (previously provided via explicit call to bsxfun ); tall arrays para Big data; nuevos string tipo; nuevas funciones para codificar/decodificar JSON; API oficial del motor MATLAB para Java.
| |
9.2 | R2017a | 37 | 1.7.0_60 | 2017 | Marzo 9, 2017 | Liberado MATLAB En línea: MATLAB basado en la nube de escritorio accedido en un navegador web; cadenas de doble cita; nuevas memoize función para la Memoización; validación de propiedades de objeto ampliado; marco de simulación para pruebas unitarias; MEX persigue 64 bits por defecto; nuevo heatmap función para crear diagramas de mapa de calor.
|
9.3 | R2017b | 38 | 1.8.0_121 | 21 de septiembre de 2017 | Presentado un GPU Coder que convierte el código MATLAB al código CUDA para Nvidia. | |
9.4 | R2018a | 39 | 1.8.0_144 | 2018 | 15 de marzo de 2018 | Mejoras al editor Live; introducción de la interfaz C++ MEX; capacidad de personalizar la finalización de la pestaña; aplicaciones web. |
9.5 | R2018b | 40 | 1.8.0_152 | 12 de septiembre de 2018 | Añadido soporte para proveedores de nube, como Amazon Web Services; Neural Network Toolbox reemplazado por Deep Learning Toolbox. | |
9.6 | R2019a | 41 | 1.8.0_181 | 2019 | 20 de marzo de 2019 | Liberado MATLAB Proyectos; programación de máquinas estatales con Stateflow. |
9.7 | R2019b | 42 | 1.8.0_202 | 11 de septiembre de 2019 | Introducción de bloques "argumentos" para validación de entradas; habilitación de indexación de puntos en salidas de funciones; introducción de tareas de editor en vivo. | |
9.8 | R2020a | 43 | 2020 | 19 de marzo de 2020 | Eliminación de cuaderno Mupad; mejor apoyo para CPUs AMD (AVX2); codificación UTF-8 predeterminada para archivos de código MATLAB; capacidad para crear aplicaciones independientes con Simulink. | |
9.9 | R2020b | 44 | 17 de septiembre de 2020 | Mejora del soporte para CPU AMD (AVX2); versión en línea de Simulink. | ||
9.10 | R2021a | 45 | 2021 | 11 de marzo de 2021 | ||
9.11 | R2021b | 46 | 22 de septiembre de 2021 | |||
9.12.0 | R2022a | 47 | 2022 | 9 de marzo de 2022 | ||
9.13 | R2022b | 48 | 1.8.0_202 | 15 de septiembre de 2022 | Presentado "Diccionarios" (arrays asociativos). Ahora puedo llamar al MATLAB. Aplicaciones NET. |
El número (o número de versión) es la versión informada por el programa FLEXlm de Concurrent License Manager. 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.
Contenido relacionado
Lógica combinatoria
Wang tile
El caso de Carmel