MATLAB
Paradigma | multi-paradigma: functioneel, imperatief, procedureel, georiënteerd object, reeks |
---|---|
Ontworpen door | Cleve Moler |
Ontwikkelaar | MathWorks |
Verscheen voor het eerst | eind jaren zeventig |
Stabiele vrijlating | R2022B[1] ![]() |
Discipline typen | dynamisch, zwak |
Bestandsnaam extensies | .m, .p,[2] .MEX*,[3] .mat,[4] .fig,[5] .mlx,[6] .mlapp,[7] .mltbx,[8] .MLAPPINSTALL,[9] .mlpkginstall[10] |
Website | Mathworks.com |
Beïnvloed door | |
Beïnvloed | |
|
![]() L-vormig membraanlogo[19] | |
Developer (s) | MathWorks |
---|---|
Eerste uitgave | 1984 |
Stabiele vrijlating | R2022B[1] ![]() |
Geschreven in | C/C ++, Matlab |
Besturingssysteem | ramen, macos, en Linux[20][21] |
Platform | IA-32, x86-64 |
Type | Numerieke computing |
Licentie | Bezit Commerciële software |
Website | Mathworks.com |
Matlab (Een afkorting van "Matrix Laboratory"[22]) is een bezit multi-paradigma programmeertaal en Numeriek computergebruik omgeving ontwikkeld door MathWorks. Matlab staat het toe Matrix manipulaties, plotten van functie en gegevens, implementatie van algoritmen, creatie van Gebruikersinterfacesen interface met programma's die in andere talen zijn geschreven.
Hoewel MATLAB voornamelijk bedoeld is voor numeriek computergebruik, gebruikt een optionele toolbox de Mupad symbolische motor toegang tot toegang tot Symbolisch computergebruik vaardigheden. Een extra pakket, Simulink, voegt grafische multi-domein simulatie toe en modelgebaseerd ontwerp voor dynamisch en ingebedde systemen.
Vanaf 2020 heeft MATLAB wereldwijd meer dan 4 miljoen gebruikers.[23] Ze komen uit verschillende achtergronden van engineering, wetenschap, en economie.
Geschiedenis
Ontstaan
Matlab werd uitgevonden door wiskundige en computerprogrammeur Cleve Moler.[24] Het idee voor Matlab was gebaseerd op zijn PhD -scriptie uit de jaren 60.[24] Moler werd wiskundeprofessor aan de Universiteit van New Mexico en begon Matlab te ontwikkelen voor zijn studenten[24] als een hobby.[25] Hij ontwikkelde de eerste lineaire algebra-programmering van Matlab in 1967 met zijn eenmalige scriptie-adviseur, George Forsythe.[24] Dit werd gevolgd door Fortran Code voor lineaire vergelijkingen in 1971.[24]
In het begin (vóór versie 1.0) was Matlab "geen programmeertaal; het was een eenvoudige interactieve matrixcalculator. Er waren geen programma's, geen toolboxen, geen grafische afbeeldingen. En geen odes of FFTS. "[26]
De eerste vroege versie van Matlab werd eind jaren zeventig voltooid.[24] De software werd voor het eerst in februari 1979 aan het publiek bekendgemaakt op de Naval Postgraduate School in Californië.[25] Vroege versies van Matlab waren eenvoudig matrixcalculators met 71 vooraf gebouwde functies.[27] Op dat moment werd Matlab gratis verspreid[28][29] aan universiteiten.[30] Moler zou kopieën achterlaten op universiteiten die hij bezocht en de software ontwikkelde een sterke aanhang op de wiskundige afdelingen van universitaire campussen.[31]: 5
In de jaren tachtig ontmoette Cleve Moler John N. Little. Ze besloten om MATLAB in C te herprogrammeren en het op de markt te brengen voor de IBM -desktops die op dat moment mainframe -computers vervangen.[24] John Little en programmeur Steve Bangert opnieuw geprogrammeerd MATLAB in C, creëerden de MATLAB-programmeertaal en ontwikkelden functies voor toolboxen.[25]
Commerciële ontwikkeling
Matlab werd voor het eerst uitgebracht als een commercieel product in 1984 op de Automatic Control Conference in Las Vegas.[24][25] MathWorks, Inc. is opgericht om de software te ontwikkelen[29] en de MATLAB -programmeertaal werd vrijgegeven.[27] De eerste MATLAB -verkoop was het volgende jaar, toen Nick Trefethen van de Massachusetts Institute of Technology Kocht tien exemplaren.[25][32]
Tegen het einde van de jaren tachtig waren enkele honderden exemplaren van MATLAB verkocht aan universiteiten voor het gebruik van studenten.[25] De software werd grotendeels gepopulariseerd dankzij toolboxen die door experts op verschillende gebieden zijn gemaakt voor het uitvoeren van gespecialiseerde wiskundige taken.[28] Veel van de toolboxen zijn ontwikkeld als gevolg van Stanford Studenten die MATLAB in de academische wereld gebruikten en vervolgens de software meenemen naar de particuliere sector.[25]
In de loop van de tijd werd MATLAB opnieuw geschreven voor vroege besturingssystemen gemaakt door Digital Equipment Corporation, Vax, Sun Microsystems, en voor Unix -pc's.[25][27] Versie 3 werd uitgebracht in 1987.[33] De eerste MATLAB -compiler werd ontwikkeld door Stephen C. Johnson in de jaren 1990.[27]
In 2000 voegde MathWorks een op Fortran gebaseerde bibliotheek toe voor lineaire algebra in MATLAB 6, ter vervanging van de originele LinPack- en EISPack-subroutines van de software die in C waren.[27] MATLAB's parallelle computertoolbox werd uitgebracht op de Supercomputing Conference 2004 en ondersteuning voor grafische verwerkingseenheden (GPU's) werd er in 2010 aan toegevoegd.[27]
Recente geschiedenis
Sommige vooral grote wijzigingen in de software zijn in 2012 met versie 8 aangebracht.[34] De gebruikersinterface was herwerkt en Simulink's functionaliteit werd uitgebreid.[35] Tegen 2016 had MATLAB verschillende technische en gebruikersinterface -verbeteringen geïntroduceerd, waaronder het MATLAB Live Editor Notebook en andere functies.[27]
Syntaxis
De MATLAB -applicatie is gebouwd rond de MATLAB -programmeertaal. Gemeenschappelijk gebruik van de MATLAB -toepassing omvat het gebruik van het "opdrachtvenster" als een interactieve wiskundige schelp of het uitvoeren van tekstbestanden met MATLAB -code.[36]
Variabelen
Variabelen worden gedefinieerd met behulp van de toewijzingsoperator, =
. Matlab is een zwak getypt programmeertaal omdat typen impliciet worden geconverteerd.[37] Het is een afgeleide getypte taal omdat variabelen kunnen worden toegewezen zonder hun type te verklaren, behalve als ze als symbolische objecten moeten worden behandeld,[38] en dat hun type kan veranderen. Waarden kunnen voortkomen uit constanten, van berekening met waarden van andere variabelen, of van de uitvoer van een functie. Bijvoorbeeld:
>> x = 17 x = 17 >> x = 'hoed' x = hoed >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*zonde(x) y = -1.6097 3.0000
Vectoren en matrices
Een eenvoudige array wordt gedefinieerd met behulp van de colon -syntaxis: voorletter:
toenemen:
aansluiting. Bijvoorbeeld:
>> reeks = 1:2:9 reeks = 1 3 5 7 9
Definieert een genoemde variabele reeks
(of wijst een nieuwe waarde toe aan een bestaande variabele met de naam reeks
) die een array is die bestaat uit de waarden 1, 3, 5, 7 en 9. dat wil zeggen, de array begint bij 1 (de voorletter waarde), verhogingen met elke stap van de vorige waarde met 2 (de toenemen waarde), en stopt zodra het wordt bereikt (of op het punt staat te overtreffen) 9 (de aansluiting waarde).
De toenemen Waarde kan daadwerkelijk worden weggelaten uit deze syntaxis (samen met een van de dikke darm), om een standaardwaarde van 1 te gebruiken.
>> Ari = 1:5 Ari = 1 2 3 4 5
wijst toe aan de benoemde variabele Ari
Een array met de waarden 1, 2, 3, 4 en 5, omdat de standaardwaarde van 1 wordt gebruikt als de toename.
Indexering is een gebaseerde,[39] dat is de gebruikelijke conventie voor matrices In de wiskunde, in tegenstelling tot op nul gebaseerde indexering die vaak wordt gebruikt in andere programmeertalen zoals C, C ++ en Java.
Matrices kunnen worden gedefinieerd door de elementen van een rij met lege ruimte of komma te scheiden en een puntkomma te gebruiken om elke rij te beëindigen. De lijst met elementen moet worden omgeven door vierkante haakjes []
. Haakjes ()
worden gebruikt om toegang te krijgen tot elementen en subarrays (ze worden ook gebruikt om een functie -argumentlijst aan te geven).
>> 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
Sets indices kunnen worden gespecificeerd door uitdrukkingen zoals 2: 4
, die evalueert [2, 3, 4]
. Een submatrix van rijen 2 tot en met 4 en kolommen 3 tot en met 4 kan bijvoorbeeld worden geschreven als:
>> A(2:4,3:4) Ans = 11 8 7 12 14 1
Een vierkant identiteitsmatrix van grootte n kan worden gegenereerd met behulp van de functie oog
, en matrices van elke grootte met nullen of die kunnen worden gegenereerd met de functies nullen
en die
, respectievelijk.
>> oog(3,3) Ans = 1 0 0 0 1 0 0 0 1 >> nullen(2,3) Ans = 0 0 0 0 0 0 >> die(2,3) Ans = 1 1 1 1 1 1
Transponerend Een vector of een matrix wordt gedaan door de functie omzetten
of door dot-prime toe te voegen na de matrix (zonder de stip zal Prime presteren conjugaat transponeren voor complexe arrays):
>> A = [1 ; 2], B = A.', C = omzetten(A) A = 1 2 B = 1 2 C = 1 2 >> D = [0, 3 ; 1, 5], D.' D = 0 3 1 5 Ans = 0 1 3 5
De meeste functies accepteren arrays als invoer en werken elementgewijs op elk element. Bijvoorbeeld, mod (2*j, n)
zal elk element vermenigvuldigen J door 2, en verminder vervolgens elke elementmodulo n. Matlab bevat standaard voor
en terwijl
lussen, maar (zoals in andere vergelijkbare toepassingen zoals zoals R), de ... gebruiken vectorediseerd Notatie wordt aangemoedigd en is vaak sneller om uit te voeren. De volgende code, uit de functie uit de functie Magic.m, creëert een Magic Square M voor vreemde waarden van n (MATLAB -functie meshgrid
wordt hier gebruikt om vierkante matrices te genereren I en J bevattend 1: n):
[J,I] = meshgrid(1:n); A = modder(I + J - (n + 3) / 2, n); B = modder(I + 2 * J - 2, n); M = n * A + B + 1;
Structuren
MATLAB ondersteunt structuurgegevenstypen.[40] Aangezien alle variabelen in MATLAB arrays zijn, is een meer adequate naam "structuurarray", waarbij elk element van de array dezelfde veldnamen heeft. Bovendien ondersteunt MATLAB dynamische veldnamen[41] (Veldopzoek op naam, veldmanipulaties, enz.).
Functie
Bij het maken van een MATLAB -functie moet de naam van het bestand overeenkomen met de naam van de eerste functie in het bestand. Geldige functienamen beginnen met een alfabetisch teken en kunnen letters, cijfers of onderstrepingstekens bevatten. Variabelen en functies zijn case -gevoelig.[42]
gbimage = onjuist maken('ecg.png'); grijs = RGB2GRAY(rgbimage); % voor niet-geïndexeerde afbeeldingen niveau = greytresh(grijs); % drempel voor het converteren van afbeelding naar binaire Binaryimage = IM2BW(grijs, niveau); % Extraheren de individuele rode, groene en blauwe kleurenkanalen. roodchannel = rgbimage(:, :, 1); greenchannel = rgbimage(:, :, 2); bluechannel = rgbimage(:, :, 3); % Maakt de zwarte delen zuiver rood. roodchannel(~Binaryimage) = 255; greenchannel(~Binaryimage) = 0; bluechannel(~Binaryimage) = 0; % Recombineer nu om het uitvoerbeeld te vormen. RGBIMAGEOUT = kat(3, roodchannel, greenchannel, bluechannel); Imshow(RGBIMAGEOUT);
Functie handelt
Matlab ondersteunt elementen van Lambda Calculus Door functiehandvatten te introduceren,[43] of functie -referenties, die worden geïmplementeerd in .m -bestanden of anoniem[44]/geneste functies.[45]
Klassen en objectgeoriënteerd programmeren
Matlab ondersteunt object georiënteerd programmeren inclusief lessen, erfenis, virtuele verzending, pakketten, door een pass-per-waarde semantiek, en Pass-by-Reference semantiek.[46] De syntaxis- en oproepconventies verschillen echter aanzienlijk van andere talen. Matlab heeft waardeklassen en referentieklassen, afhankelijk van of de klasse heeft handvat als een superklasse (voor referentieklassen) of niet (voor waardeklassen).[47]
Methode -oproepgedrag is verschillend tussen waarde- en referentieklassen. Bijvoorbeeld een oproep naar een methode:
object.methode();
kan elk lid van object alleen als object is een exemplaar van een referentieklasse, anders moeten methoden voor waardeklasse een nieuw exemplaar retourneren als deze het object moet wijzigen.
Een voorbeeld van een eenvoudige klasse wordt hieronder gegeven:
classdef Hallo methoden functie groeten(Obj) schermen('Hallo!') einde einde einde
Wanneer ingebracht in een bestand met de naam Hallo m
, dit kan worden uitgevoerd met de volgende opdrachten:
>> x = Hallo(); >> x.groeten(); Hallo!
Graphics en grafische programmering van gebruikersinterface
MATLAB heeft strak geïntegreerde grafische plotsfuncties. Bijvoorbeeld de functie verhaallijn kan worden gebruikt om een grafiek van twee vectoren te produceren x en y. De code:
x = 0:pi/100:2*pi; y = zonde(x); verhaallijn(x,y)
produceert de volgende figuur van de sinusfunctie:
MATLAB ondersteunt ook driedimensionale graphics:
[X,Y] = meshgrid(-10:0,25:10,-10:0,25:10); f = woest(sqrt((((X/pi).^2+(Y/pi).^2)); mazen(X,Y,f); as([-10 10 -10 10 -0,3 1])) Xlabel('{\ bfx}') Ylabel('{\ bfy}') Zlabel('{\ bfsinc} ({\ bfr})' ') verborgen uit | [X,Y] = meshgrid(-10:0,25:10,-10:0,25:10); f = woest(sqrt((((X/pi).^2+(Y/pi).^2)); surfen(X,Y,f); as([-10 10 -10 10 -0,3 1])) Xlabel('{\ bfx}') Ylabel('{\ bfy}') Zlabel('{\ bfsinc} ({\ bfr})' ') | |
Deze code produceert een draadframe 3D-plot van de tweedimensionale niet-genormaliseerde SINC -functie: | Deze code produceert een oppervlak 3D-plot van de tweedimensionale niet-genormaliseerde SINC -functie: | |
![]() | ![]() |
Matlab ondersteunt ontwikkelen grafische gebruikersinterface (GUI) Toepassingen.[48] UI's kunnen programmatisch worden gegenereerd of het gebruik van visuele ontwerpomgevingen zoals zoals GIDS en App -ontwerper.[49][50]
Matlab en andere talen
Matlab kan functies en subroutines oproepen die in een programmeertalen zijn geschreven C of Fortran.[51] Er wordt een wrapper -functie gemaakt waarmee MATLAB -gegevenstypen kunnen worden doorgegeven en geretourneerd. Mex -bestanden (MATLAB -uitvoerbare bestanden) zijn de dynamisch laadbare objectbestanden die zijn gemaakt door dergelijke functies samen te stellen.[52][53] Sinds 2014 verhoogde tweerichtingsinterfacing met Python werd toegevoegd.[54][55]
Bibliotheken geschreven in Perl, Java, Activex of .NETTO kan direct worden aangeroepen vanuit Matlab,[56][57] en veel Matlab -bibliotheken (bijvoorbeeld XML of Sql ondersteuning) worden geïmplementeerd als wrappers rond Java- of ActiveX -bibliotheken. Matlab bellen vanuit Java is ingewikkelder, maar kan worden gedaan met een MATLAB -toolbox[58] die apart wordt verkocht door MathWorks, of met behulp van een ongedocumenteerd mechanisme genaamd JMI (Java-to-Matlab-interface),[59][60] (die niet moet worden verward met de niet -gerelateerde Java Metadata -interface dat wordt ook JMI genoemd). Officiële MATLAB API voor Java werd in 2016 toegevoegd.[61]
Als alternatieven voor de Mupad gebaseerde symbolische wiskundetoolbox verkrijgbaar bij MathWorks, MATLAB kan worden aangesloten op Esdoorn of Wisica.[62][63]
Bibliotheken bestaan ook om te importeren en te exporteren Mathml.[64]
Terwijl MATLAB het meest populaire commerciële numerieke berekeningssoftwarepakket is,[65] Andere alternatieven zijn beschikbaar, zoals de open source berekeningstaal GNU -octaaf, de statistische programmeertaal R, de computeromgeving Esdoorn en de computationele taal Julia.[65][66]
Relaties tot Amerikaanse sancties
In 2020 trok MATLAB diensten van twee Chinese universiteiten terug als gevolg van Amerikaanse sancties. De universiteiten zeiden dat dit zal worden gereageerd door een verhoogd gebruik van open-source alternatieven en door het ontwikkelen van binnenlandse alternatieven.[67]
Vrijgavegeschiedenis
MATLAB wordt twee keer per jaar bijgewerkt.[68]: 517[35] Naast nieuwe functies en andere verbeteringen heeft elke release nieuwe bugfixes en kleinere wijzigingen.[69]
Versie[70] | Releasenaam | Nummer | Gebundeld JVM | Jaar | Publicatiedatum | Aantekeningen |
---|---|---|---|---|---|---|
1.0 | 1984 | |||||
2 | 1986 | |||||
3 | 1987 | Eerste MATLAB Toolbox geïntroduceerd; ondersteuning voor gewone differentiaalvergelijkingen toegevoegd.[27]: 81 | ||||
3.5 | 1990 | Liep op Dos, Laagste vereiste is een Intel 8088; Math Processor wordt ondersteund, maar had compatibiliteitsproblemen met NEC V20 + Intel 8087 -combinatie. | ||||
4 | 1992 | Liep op Windows 3.1X en Macintosh. | ||||
4.2c | 1994 | Liep op Windows 3.1X; nodig een wiskunde coprocessor. | ||||
5.0 | Deel 8 | 1996 | December 1996 | Unified releases op alle platforms. | ||
5.1 | Deel 9 | 1997 | Mei 1997 | |||
5.1.1 | R9.1 | |||||
5.2 | R10 | 1998 | Maart 1998 | Laatste versie die werkt aan klassieke Macs. | ||
5.2.1 | R10.1 | |||||
5.3 | R11 | 1999 | Januari 1999 | |||
5.3.1 | R11.1 | November 1999 | ||||
6.0 | R12 | 12 | 1.1.8 | 2000 | November 2000 | Eerste release met gebundelde Java Virtual Machine (JVM). |
6.1 | R12.1 | 1.3.0 | 2001 | Juni 2001 | Laatste release voor Windows 95. | |
6.5 | R13 | 13 | 1.3.1 | 2002 | Juli 2002 | |
6.5.1 | R13SP1 | 2003 | ||||
6.5.2 | R13SP2 | Laatste release voor Windows 98, Windows ME, IBM/AIX, Alpha/Tru64 en SGI/IRIX.[71] | ||||
7 | R14 | 14 | 1.4.2 | 2004 | Juni 2004 | Geïntroduceerde anonieme en geneste functies;[72] opnieuw geïntroduceerd voor Mac (onder Mac OS X). |
7.0.1 | R14SP1 | Oktober 2004 | ||||
R14SP1+ | 2004 | November 2004 | Parallel Computing Toolbox geïntroduceerd.[27]: 4[73]: 3 | |||
7.0.4 | R14SP2 | 1.5.0 | 2005 | 7 maart 2005 | Ondersteuning toegevoegd voor geheugen-toegewezen bestanden.[74] | |
7.1 | R14SP3 | 1.5.0 | 1 september 2005 | Eerste 64-bit versie beschikbaar voor Windows XP 64-bit. | ||
7.2 | R2006A | 15 | 1.5.0 | 2006 | 1 maart 2006 | |
7.3 | R2006B | 16 | 1.5.0 | 1 september 2006 | HDF5-Gebaseerde matte-bestandsondersteuning toegevoegd. | |
7.4 | R2007A | 17 | 1.5.0_07 | 2007 | 1 maart 2007 | Nieuw BSXFUN Functie toegevoegd om element-per-element binaire bewerking toe te passen met singleton-uitbreiding ingeschakeld.[75] |
7.5 | R2007B | 18 | 1.6.0 | 1 september 2007 | Laatste release voor Windows 2000 en Powerpc Mac; Licentie -serverondersteuning voor Windows Vista;[76] Nieuw intern formaat voor P-code. | |
7.6 | R2008A | 19 | 1.6.0 | 2008 | 1 maart 2008 | Belangrijke verbeteringen aan objectgeoriënteerde programmeermogelijkheden met een nieuwe klassendefinitie-syntaxis;[77] Mogelijkheid om naamruimten met pakketten te beheren.[78] |
7.7 | R2008B | 20 | 1.6.0_04 | 9 oktober 2008 | Laatste release voor processors zonder SSE2; Nieuwe kaartgegevensstructuur;[79] Upgrades naar willekeurige nummergeneratoren.[80] | |
7.8 | R2009A | 21 | 1.6.0_04 | 2009 | 6 maart 2009 | Eerste release voor Microsoft 32-bit & 64-bit Windows 7; Nieuwe externe interface naar .NET Framework.[81] |
7.9 | R2009B | 22 | 1.6.0_12 | 4 september 2009 | Eerste release voor Intel 64-bit Mac, en laat voor Solaris Sparc; Nieuw gebruik voor de Tilde -operator (~ ) om argumenten in functieaanroepen te negeren.[82][83] | |
7.9.1 | R2009BSP1 | 1.6.0_12 | 2010 | 1 april 2010 | Bugfixes. | |
7.10 | R2010a | 23 | 1.6.0_12 | 5 maart 2010 | Laatste release voor Intel 32-bit Mac. | |
7.11 | R2010B | 24 | 1.6.0_17 | 3 september 2010 | Ondersteuning toegevoegd voor opsommingen;[84] Functies toegevoegd voor het uitvoeren van MATLAB-code op NVIDIA CUDA-gebaseerde GPU's.[85] | |
7.11.1 | R2010BSP1 | 1.6.0_17 | 2011 | 17 maart 2011 | Bugfixes en updates. | |
7.11.2 | R2010BSP2 | 1.6.0_17 | 5 april 2012[86] | Bugfixes. | ||
7.12 | R2011A | 25 | 1.6.0_17 | 8 april 2011 | Nieuw RNG functie om het genereren van willekeurige getallen te regelen.[87][88][89] | |
7.13 | R2011B | 26 | 1.6.0_17 | 1 september 2011 | Toegevoegd vermogen om delen van variabelen rechtstreeks in matbestanden te openen/te wijzigen, zonder in het geheugen te laden;[90] Verhoogde maximale lokale werknemers met Parallel Computing Toolbox van 8 tot 12.[91] | |
7.14 | R2012A | 27 | 1.6.0_17 | 2012 | 1 maart 2012 | Laatste versie met 32-bit Linux-ondersteuning.[92] |
8 | R2012B | 28 | 1.6.0_17 | 11 september 2012 | Eerste release met Toolstrip koppel;[93] MATLAB -apps geïntroduceerd;[94] opnieuw ontworpen documentatiesysteem. | |
8.1 | R2013A | 29 | 1.6.0_17 | 2013 | 7 maart 2013 | Nieuw testen van een eenheid kader.[95] |
8.2 | R2013B | 30 | 1.7.0_11 | 6 september 2013[96] | Ingebouwd in Java Runtime Environment (JRE) bijgewerkt naar versie 7;[97] Nieuw tabelgegevenstype.[98] | |
8.3 | R2014A | 31 | 1.7.0_11 | 2014 | 7 maart 2014[99] | Vereenvoudigde compiler-instelling voor het bouwen van Mex-Files; USB -webcams ondersteuning in Core Matlab; Aantal lokale werknemers zijn niet langer beperkt tot 12 met Parallel Computing Toolbox. |
8.4 | R2014B | 32 | 1.7.0_11 | 3 oktober 2014 | Nieuwe klasse Graphics Engine (A.K.A. HG2);[100] Tabbingfunctie in GUI;[101] Verbeterde gebruik van de gebruiker Toolbox Packaging en Help -bestanden;[102] Nieuwe objecten voor tijd-date manipulaties;[103] Git-Ondermijning Integratie in IDE;[104] Big Data vaardigheden met MapReduce (schaalbaar naar Hadoop);[105] nieuwe py Pakket voor gebruik Python Van binnen Matlab;[106] nieuwe motorinterface om Matlab te bellen vanuit Python;[107] Verschillende nieuwe en verbeterde functies: Webread (Restful Web Services met JSON/XML -ondersteuning), tcpclient (op socket gebaseerde verbindingen), histcounts , histogram , geanimeerde lijn , en anderen. | |
8.5 | R2015A | 33 | 1.7.0_60 | 2015 | 5 maart 2015 | |
8.5 | R2015ASP1 | 1.7.0_60 | 14 oktober 2015 | Laatste release ondersteunt Windows XP en Windows Vista. | ||
8.6 | R2015B | 34 | 1.7.0_60 | 3 september 2015 | Nieuwe MATLAB -uitvoeringsmotor (ook bekend als LXE);[108] grafiek en digraaf klassen om te werken met grafieken en netwerken;[109] Mingw-W64 als ondersteunde compiler op Windows;[110] Laatste versie met 32-bits ondersteuning. | |
9.0 | R2016A | 35 | 1.7.0_60 | 2016 | 3 maart 2016 | Live Scripts uitgebracht: interactieve documenten die tekst, code en uitvoer combineren (in de stijl van Geletterde programmering);[111] App -ontwerper geïntroduceerd: een nieuwe ontwikkelingsomgeving voor het bouwen van apps (met nieuw soort UI -figuren, bijlen en componenten);[112] Pauzeer de uitvoering van het uitvoeren van programma's met behulp van een pauzeknop. |
9.1 | R2016B | 36 | 1.7.0_60 | 15 september 2016 | Toegevoegd vermogen om lokale functies in scripts te definiëren;[113] Automatische uitbreiding van dimensies (eerder verstrekt via expliciete oproep aan BSXFUN ); hoog arrays voor Big Data;[114] nieuwe snaar type;[115] Nieuwe functies om te coderen/decoderen JSON;[116] Officiële MATLAB -motor -API voor Java.[61] | |
9.2 | R2017A | 37 | 1.7.0_60 | 2017 | 9 maart 2017 | Uitgebracht MATLAB Online: Cloud-gebaseerde MATLAB-bureaublad toegankelijk in een webbrowser;[117] dubbel geciteerde snaren; nieuwe onthouden functioneren Memoisering; uitgebreide validatie van objecteigenschappen;[118] bespotten raamwerk voor eenheidstests;[119] Mex richt zich standaard op 64-bit; nieuwe hitte functie voor het maken hitte map -grafieken.[120] |
9.3 | R2017B | 38 | 1.8.0_121 | 21 september 2017 | Geïntroduceerd een GPU -coder die MATLAB -code converteert naar CUDA -code voor NVIDIA.[121] | |
9.4 | R2018A | 39 | 1.8.0_144 | 2018 | 15 maart 2018[122] | Verbeteringen aan de live -editor; introductie van de C ++ Mex -interface; Mogelijkheid om het tabblad Voltooi aan te passen; web applicaties.[123] |
9.5 | R2018B | 40 | 1.8.0_152 | 12 september 2018 | Ondersteuning toegevoegd voor cloudproviders, zoals Amazon Web Services; Neural Network Toolbox vervangen door Deep Learning Toolbox.[124] | |
9.6 | R2019A | 41 | 1.8.0_181 | 2019 | 20 maart 2019 | Vrijgegeven MATLAB -projecten; Staatsmachine -programmering toegevoegd met Stateflow.[125] |
9.7 | R2019B | 42 | 1.8.0_202 | 11 september 2019 | Introductie van 'argumenten' blok voor invoervalidatie; het inschakelen van DOT -indexering in functie -uitgangen; introductie van live editor -taken.[126] | |
9.8 | R2020A | 43 | 2020 | 19 maart 2020 | Verwijdering van Mupad Notebook; verbeterde ondersteuning voor AMD CPU's (AVX2);[127] Standaard UTF-8-codering voor MATLAB-codebestanden;[128] Mogelijkheid om zelfstandige toepassingen te maken met Simulink.[129] | |
9.9 | R2020B | 44 | 17 september 2020 | Verbeterde ondersteuning voor AMD CPU's (AVX2);[127] Online versie van Simulink.[130] | ||
9.10 | R2021A | 45 | 2021 | 11 maart 2021 | ||
9.11 | R2021B | 46 | 22 september 2021 | |||
9.12.0 | R2022A | 47 | 2022 | 9 maart 2022 | ||
9.13 | R2022B | 48 | 15 september 2022 | Geïntroduceerd "woordenboeken" (associatieve arrays). Kan nu Matlab bellen vanuit .NET -applicaties. |
Het nummer (of release -nummer) is de versie gerapporteerd door gelijktijdig licentiemanagerprogramma Flexlm. Raadpleeg de MATLAB Release Notes voor een volledige lijst met wijzigingen van zowel MATLAB- als officiële toolboxen.[131]
Zie ook
Aantekeningen
- ^ a b https://www.mathworks.com/help/pdf_doc/matlab/rn.pdf.
- ^ "Bescherm uw broncode". MathWorks. Opgehaald 1 november, 2019.
- ^ "Mex Platform Compatibiliteit". MathWorks. Opgehaald 1 november, 2019.
- ^ "Mat-file versies". MathWorks. Opgehaald 1 november, 2019.
- ^ "Opslaan figuur om later opnieuw te openen in Matlab". MathWorks. Opgehaald 1 november, 2019.
- ^ "Live Code File Format (.mlx)". MathWorks. Opgehaald 1 november, 2019.
- ^ "Matlab App Designer". MathWorks. Opgehaald 1 november, 2019.
- ^ "Toolbox -distributie". MathWorks. Opgehaald 1 november, 2019.
- ^ "Matlab App Installer -bestand". MathWorks. Opgehaald 1 november, 2019.
- ^ "Installatie van ondersteuningspakket". MathWorks. Opgehaald 1 november, 2019.
- ^ "Een interview met Cleve Moler uitgevoerd door Thomas Haigh op 8 en 9 maart 2004 Santa Barbara, Californië" (PDF). Computergeschiedenismuseum. Gearchiveerd van het origineel (PDF) op 27 december 2014. Opgehaald 6 december, 2016.
Dus APL, Speakeasy, Linpack, EISPack en PL0 waren de voorgangers van Matlab.
- ^ Bezanson, Jeff; Karpinski, Stefan; Shah, viral; Edelman, Alan (14 februari 2012). "Waarom we Julia hebben gemaakt". Julia -taal. Opgehaald 1 december, 2016.
- ^ Eaton, John W. (21 mei 2001). "Octaaf: verleden, heden en toekomst" (PDF). Texas-Wisconsin Modellering en Control Consortium. Gearchiveerd van het origineel (PDF) Op 9 augustus 2017. Opgehaald 1 december, 2016.
- ^ "Geschiedenis". Scilab. Gearchiveerd van het origineel Op 1 december 2016. Opgehaald 1 december, 2016.
- ^ S.M. Rump: INTLAB - Intervallaboratorium. In Tibor Csendes, redacteur, ontwikkelingen in betrouwbaar computergebruik, pagina's 77-104. Kluwer Academic Publishers, Dordrecht, 1999.
- ^ Moore, R. E., Kearfott, R. B., & Cloud, M. J. (2009). Inleiding tot intervalanalyse. Society for Industrial and Applied Mathematics.
- ^ Rump, S. M. (2010). Verificatiemethoden: rigoureuze resultaten met behulp van drijvende komma. Acta Numerica, 19, 287–449.
- ^ Hargreaves, G. I. (2002). Intervalanalyse in MATLAB. Numerieke algoritmen, (2009.1).
- ^ "Het L-vormige membraan". MathWorks. 2003. Opgehaald 7 februari, 2014.
- ^ "Systeemvereisten en beschikbaarheid van platform". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Platform Road Map voor MATLAB- en Simulink -productfamilies". de.mathworks.com. Opgehaald 22 december, 2021.
- ^ "Matrices and Arrays - Matlab & Simulink". www.mathworks.com. Opgehaald 21 mei, 2022.
- ^ The Mathworks (februari 2020). "Bedrijfsoverzicht" (PDF).
- ^ a b c d e f g h Chonacky, N.; Winch, D. (2005). "Beoordelingen van Maple, Mathematica en Matlab: binnenkort naar een publicatie bij u in de buurt". Computeren in wetenschap en engineering. Institute of Electrical and Electronics Engineers (IEEE). 7 (2): 9–10. Bibcode:2005cse ..... 7b ... 9c. doen:10.1109/mcse.2005.39. ISSN 1521-9615. S2CID 29660034.
- ^ a b c d e f g h Haigh, Thomas. "Cleve Moler: Mathematical Software Pioneer en Creator of Matlab" (PDF). IEEE Annals of the History of Computing. IEEE Computer Society.
- ^ "Een korte geschiedenis van Matlab". www.mathworks.com. Opgehaald 4 september, 2021.
- ^ a b c d e f g h i Moler, Cleve; Little, Jack (12 juni 2020). "Een geschiedenis van Matlab". Proceedings van de ACM over programmeertalen. Association for Computing Machinery (ACM). 4 (Hopl): 1–67. doen:10.1145/3386331. ISSN 2475-1421.
- ^ a b Xue, D.; Press, T.U. (2020). MATLAB -programmering: wiskundige probleemoplossingen. De Gruyter stam. De Gruyter. p. 21. ISBN 978-3-11-066370-9. Opgehaald 16 september, 2020.
- ^ a b Press, CRC (2008). Het oplossen van toegepaste wiskundige problemen met MATLAB. CRC Press. p. 6. ISBN 978-1-4200-8251-7. Opgehaald 16 september, 2020.
- ^ Woodford, C.; Phillips, C. (2011). Numerieke methoden met uitgewerkte voorbeelden: MATLAB -editie. SpringerLink: Bücher. Springer Nederland. p. 1. ISBN 978-94-007-1366-6. Opgehaald 16 september, 2020.
- ^ Tranquillo, J.V. (2011). Matlab voor engineering en de levenswetenschappen. Synthese Digital Library of Engineering and Computer Science. Morgan & Claypool Publishers. ISBN 978-1-60845-710-6. Opgehaald 17 september, 2020.
- ^ Loturco, Lori (28 januari 2020). "Het tempo van engineering versnellen". MIT News. Massachusetts Institute of Technology. Opgehaald 16 september, 2020.
- ^ Gatto, Marino; Rizzoli, Andrea (1993). "Review van Matlab, versie 4.0". Modellering van natuurlijke hulpbronnen. Wiley. 7 (1): 85–88. doen:10.1111/j.1939-7445.1993.tb00141.x. ISSN 0890-8575.
- ^ Cho, M.J.; Martinez, W.L. (2014). Statistieken in Matlab: een primer. Chapman & Hall/CRC Computer Science & Data Analysis. CRC Press. ISBN 978-1-4665-9657-3. Opgehaald 17 september, 2020.
- ^ a b Xue, D.; Chen, Y. (2013). Systeemsimulatietechnieken met MATLAB en Simulink. Niet langer gebruikt. Wiley. p. 17. ISBN 978-1-118-69437-4. Opgehaald 15 oktober, 2020.
- ^ "Matlab -documentatie". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "MATLAB vergelijken met andere OO -talen". Matlab. MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Creëer symbolische variabelen en uitdrukkingen". Symbolische wiskundetoolbox. MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Matrix -indexering". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Structuren". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Veldnamen uit variabelen genereren". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Case en ruimtegevoeligheid". MathWorks. Opgehaald 1 november, 2019.
- ^ "Functie behandelt". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Anonieme functies". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Geneste functies". MathWorks.
- ^ "Object georiënteerd programmeren". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "Klassen met handvat en waarde vergelijken". MathWorks.
- ^ "Matlab Gui". MathWorks. 30 april 2011. Opgehaald 14 augustus, 2013.
- ^ "Maak een eenvoudige gids GUI". MathWorks. Opgehaald 14 augustus, 2014.
- ^ "Matlab App Designer". MathWorks. Opgehaald 1 november, 2019.
- ^ "Toepassingsprogrammeerinterfaces naar MATLAB". MathWorks. Gearchiveerd van het origineel Op 15 september 2017. Opgehaald 14 augustus, 2013.
- ^ "Create Mex-Files". MathWorks. Gearchiveerd van het origineel op 3 maart 2014. Opgehaald 14 augustus, 2013.
- ^ Spielman, Dan (10 februari 2004). "C en Matlab verbinden". Yale University, afdeling informatica. Opgehaald 20 mei, 2008.
- ^ "Matlab -motor voor Python". MathWorks. Opgehaald 13 juni, 2015.
- ^ "Bel Python -bibliotheken". MathWorks. Opgehaald 13 juni, 2015.
- ^ "Externe programmeertaalinterfaces". MathWorks. Gearchiveerd van het origineel op 11 maart 2014. Opgehaald 14 augustus, 2013.
- ^ "Perl -script aanroepen met behulp van het juiste uitvoerbaar besturingssysteem". MathWorks. Opgehaald 7 november, 2013.
- ^ "Matlab Builder Ja". MathWorks. Opgehaald 7 juni, 2010.
- ^ Altman, Yair (14 april 2010). "Java-to-Matlab-interface". Matlab zonder papieren. Gearchiveerd van het origineel Op 5 september 2015. Opgehaald 7 juni, 2010.
- ^ Kaplan, Joshua. "Matlabcontrol JMI".
- ^ a b "MATLAB MOTOR API voor Java". MathWorks. Opgehaald 15 september, 2016.
- ^ Germundson, Roger (30 september 1998). "Mama: Matlab bellen uit Mathematica met Mathlink". Wolfram -onderzoek. Wolfram Library Archive.
- ^ rsmenon; Szhorvat (2013). "Matlink: communiceer met Matlab uit Mathematica". Opgehaald 14 augustus, 2013.
- ^ Weitzel, Michael (1 september 2006). "MATHML Import/exporteren". MathWorks - File Exchange. Gearchiveerd van het origineel Op 25 februari 2011. Opgehaald 14 augustus, 2013.
- ^ a b Popuri, SK; Gobbert, MK (2017). "Een vergelijkende evaulatie van Matlab, Octave, R en Julia op Maya". UMBC Faculty Collection. doen:10.13016/M2Q23R39S. Opgehaald 1 april, 2021.
- ^ Shaukat, Kamran, et al. "Een vergelijkende studie van numerieke analysepakketten." International Journal of Computer Theory and Engineering 10.3 (2018): 67-72.
- ^ "US militair verbod vergrendelt twee Chinese universiteiten uit populaire software". Zuid -China Morning Post. 12 juni 2020. Opgehaald 6 november, 2020.
- ^ Bober, W. (2013). Inleiding tot numerieke en analytische methoden met MATLAB voor ingenieurs en wetenschappers. CRC Press. p. 517. ISBN 978-1-4665-7609-4. Opgehaald 15 oktober, 2020.
- ^ Altman, Y.M. (2014). MATLAB -prestaties versnellen: 1001 tips om MATLAB -programma's te versnellen. Taylor & Francis. p. 215. ISBN 978-1-4822-1129-0. Opgehaald 15 oktober, 2020.
- ^ Moler, Cleve (januari 2006). "De groei van Matlab en de Mathworks gedurende twee decennia". Nieuws en opmerkingen nieuwsbrief. MathWorks. Opgehaald 14 augustus, 2013.
- ^ "MATLAB -systeemvereisten - release 13". MathWorks. Opgehaald 6 oktober, 2015.
- ^ "Dynamische functiecreatie met anonieme en geneste functies". MathWorks. Opgehaald 15 januari, 2016.
- ^ Matlab parallel computing toolbox gebruikershandleiding (PDF)
- ^ "Memory Mapping". MathWorks. Opgehaald 22 januari, 2014.
- ^ "MATLAB BSXFUN". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Matlab -versies voorafgaand aan R2007A onder Windows Vista?". MathWorks. 3 september 2010. Opgehaald 8 februari, 2011.
- ^ "OOP -compatibiliteit met eerdere versies". MathWorks. Opgehaald 11 maart, 2013.
- ^ "Pakketten maken naamruimten". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Kaartcontainers". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Een willekeurige nummersstroom maken en controleren". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Nieuwe MATLAB externe interface -functies in R2009A". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Negeer functie -uitgangen". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Functie -ingangen negeren". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Werken met opsommingen". MathWorks. Opgehaald 22 januari, 2014.
- ^ "MathWorks kondigt release 2010b aan van de MATLAB- en Simulink -productfamilies - eejournal". Eejournal - Electronic Engineering Journal. 3 september 2010. Opgehaald 24 november, 2020.
- ^ "Wat is er nieuw in release 2010b". MathWorks. Gearchiveerd van het origineel op 25 november 2015. Opgehaald 22 januari, 2014.
- ^ "Nieuwe RNG -functie voor het beheersen van willekeurige nummergeneratie in release 2011a". MathWorks. Opgehaald 22 januari, 2014.
- ^ "MATLAB RNG". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Vervang ontmoedigde syntaxis van Rand en Randn". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Matlab Matfile". MathWorks. Opgehaald 22 januari, 2014.
- ^ "Matlab Max -werknemers". Opgehaald 22 januari, 2014.
- ^ MathWorks Support Team (4 juni 2015). "Wordt Matlab ondersteund op 32-bit Linux?".
Versies van MATLAB voorafgaand aan R2012A worden volledig ondersteund op 32-bit Linux. Na R2012A wordt MATLAB niet langer ondersteund op 32-bit Linux.
- ^ Shure, Loren (september 2012). "The Matlab R2012B Desktop - Deel 1: Inleiding tot de ToolStrip".
- ^ "Matlab -apps". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "MATLAB -eenheid Testkader". MathWorks. Opgehaald 14 augustus, 2013.
- ^ "MathWorks kondigt release 2013b aan van de MATLAB- en Simulink -productfamilies". MathWorks. September 2013.
- ^ "R2013B Release Notes". MathWorks. Opgehaald 17 september, 2018.
- ^ "Matlab -tafels". MathWorks. Opgehaald 14 september, 2013.
- ^ "MathWorks kondigt release 2014a aan van de MATLAB- en Simulink -productfamilies". MathWorks. Opgehaald 11 maart, 2014.
- ^ "Graphics verandert in R2014B". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "UITAB: Paneel met tabbladen maken". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "Toolboxes maken en delen". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "Datums en tijd". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "Integratie van bronbesturing". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "Matlab MapReduce en Hadoop". MathWorks. Gearchiveerd van het origineel op 4 oktober 2014. Opgehaald 3 oktober, 2014.
- ^ "Bel Python -bibliotheken". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "Matlab -motor voor Python". MathWorks. Opgehaald 3 oktober, 2014.
- ^ "MATLAB -uitvoeringsmotor". MathWorks. Opgehaald 15 september, 2016.
- ^ "Grafiek- en netwerkalgoritmen". MathWorks. Opgehaald 15 september, 2016.
- ^ "Mingw-W64 Compiler installeren". MathWorks. Opgehaald 15 september, 2016.
- ^ "Wat is een live script?". MathWorks. Gearchiveerd van het origineel Op 25 februari 2018. Opgehaald 15 september, 2016.
- ^ "Matlab App Designer". MathWorks. Opgehaald 15 september, 2016.
- ^ "Functies toevoegen aan scripts". MathWorks. Opgehaald 15 september, 2016.
- ^ "Lange arrays". MathWorks. Opgehaald 15 september, 2016.
- ^ "Stringarrays maken". MathWorks. Opgehaald 15 september, 2016.
- ^ "JSON FORMAT - MATLAB & SIMULINK". Mathworks.com. Opgehaald 20 augustus, 2017.
- ^ "Matlab online". MathWorks. Opgehaald 10 april, 2017.
- ^ "Valideer de eigenschapswaarden". MathWorks. Opgehaald 10 april, 2017.
- ^ "Mocking Framework". MathWorks. Opgehaald 10 april, 2017.
- ^ "Warmtemap maken van tabelgegevens". MathWorks. Opgehaald 10 april, 2017.
- ^ Morris, Kevin (27 maart 2018). "Diep leren met Matlab". Electronic Engineering Journal. Opgehaald 23 november, 2020.
- ^ "MathWorks kondigt release 2018a aan van de MATLAB- en Simulink -productfamilies". MathWorks. Opgehaald 5 april, 2018.
- ^ "Matlab voegt nieuwe mogelijkheden toe met release R2018A". InsideHPC. 18 maart 2018. Opgehaald 23 november, 2020.
- ^ Michel, Stefanie (15 oktober 2018). "MathWorks Erweitert Deep-Learning-Funktionen Im Neuen release". Mm maschinenmarkt (In het Duits). Opgehaald 23 november, 2020.
- ^ "MathWorks kondigt release 2019b van Matlab en Simulink aan". Evaluatie -engineering. Opgehaald 23 november, 2020.
- ^ Schlichtmeier, Tobias (20 september 2019). "MathWorks Stellt Update VOR: Release 2019b für Matlab und Simulink". Elektoniknet (In het Duits). Opgehaald 23 november, 2020.
- ^ a b "Cripple niet langer: Matlab draait nu op AMD CPU's op volle snelheid - ExtremeTech". www.extremetech.com. Opgehaald 29 oktober, 2020.
- ^ "MathWorks levert AI -mogelijkheden aan ingenieurs en wetenschappers". Maandelijks fabrikanten. 8 mei 2020. Opgehaald 23 november, 2020.
- ^ "MathWorks levert extra AI -mogelijkheden met release 2020A van Matlab en Simulink". Hpcwire. 8 mei 2020. Opgehaald 23 november, 2020.
- ^ Manners, David (24 september 2020). "MathWorks werkt Simulink- en Matlab -families bij". Elektronica wekelijks. Opgehaald 23 november, 2020.
- ^ "MATLAB Release Notes". MathWorks. Opgehaald 25 januari, 2014.
Verder lezen
- Gilat, Amos (2004). Matlab: een introductie met applicaties 2e editie. John Wiley & Sons. ISBN 978-0-471-69420-5.
- Quarteroni, Alfio; Saleri, Fausto (2006). Wetenschappelijk computergebruik met Matlab en Octave. Springer. ISBN 978-3-540-32612-0.
- Ferreira, A.J.M. (2009). MATLAB -codes voor eindige elementenanalyse. Springer. ISBN 978-1-4020-9199-5.
- Lynch, Stephen (2004). Dynamische systemen met toepassingen met behulp van MATLAB. Birkhäuser. ISBN 978-0-8176-4321-8.