MATLAB

Matlab (programmeertaal)
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] Edit this on Wikidata / 15 september 2022; 38 dagen geleden
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
  • Matlab -programmering bij Wikibooks
Matlab (software)
Developer (s) MathWorks
Eerste uitgave 1984; 38 jaar geleden
Stabiele vrijlating
R2022B[1] Edit this on Wikidata / 15 september 2022; 38 dagen geleden
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 plot sin.svg

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 mesh sinc3D.svg     MATLAB surf sinc3D.svg

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

  1. ^ a b https://www.mathworks.com/help/pdf_doc/matlab/rn.pdf.
  2. ^ "Bescherm uw broncode". MathWorks. Opgehaald 1 november, 2019.
  3. ^ "Mex Platform Compatibiliteit". MathWorks. Opgehaald 1 november, 2019.
  4. ^ "Mat-file versies". MathWorks. Opgehaald 1 november, 2019.
  5. ^ "Opslaan figuur om later opnieuw te openen in Matlab". MathWorks. Opgehaald 1 november, 2019.
  6. ^ "Live Code File Format (.mlx)". MathWorks. Opgehaald 1 november, 2019.
  7. ^ "Matlab App Designer". MathWorks. Opgehaald 1 november, 2019.
  8. ^ "Toolbox -distributie". MathWorks. Opgehaald 1 november, 2019.
  9. ^ "Matlab App Installer -bestand". MathWorks. Opgehaald 1 november, 2019.
  10. ^ "Installatie van ondersteuningspakket". MathWorks. Opgehaald 1 november, 2019.
  11. ^ "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.
  12. ^ Bezanson, Jeff; Karpinski, Stefan; Shah, viral; Edelman, Alan (14 februari 2012). "Waarom we Julia hebben gemaakt". Julia -taal. Opgehaald 1 december, 2016.
  13. ^ 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.
  14. ^ "Geschiedenis". Scilab. Gearchiveerd van het origineel Op 1 december 2016. Opgehaald 1 december, 2016.
  15. ^ S.M. Rump: INTLAB - Intervallaboratorium. In Tibor Csendes, redacteur, ontwikkelingen in betrouwbaar computergebruik, pagina's 77-104. Kluwer Academic Publishers, Dordrecht, 1999.
  16. ^ Moore, R. E., Kearfott, R. B., & Cloud, M. J. (2009). Inleiding tot intervalanalyse. Society for Industrial and Applied Mathematics.
  17. ^ Rump, S. M. (2010). Verificatiemethoden: rigoureuze resultaten met behulp van drijvende komma. Acta Numerica, 19, 287–449.
  18. ^ Hargreaves, G. I. (2002). Intervalanalyse in MATLAB. Numerieke algoritmen, (2009.1).
  19. ^ "Het L-vormige membraan". MathWorks. 2003. Opgehaald 7 februari, 2014.
  20. ^ "Systeemvereisten en beschikbaarheid van platform". MathWorks. Opgehaald 14 augustus, 2013.
  21. ^ "Platform Road Map voor MATLAB- en Simulink -productfamilies". de.mathworks.com. Opgehaald 22 december, 2021.
  22. ^ "Matrices and Arrays - Matlab & Simulink". www.mathworks.com. Opgehaald 21 mei, 2022.
  23. ^ The Mathworks (februari 2020). "Bedrijfsoverzicht" (PDF).
  24. ^ 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.
  25. ^ 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.
  26. ^ "Een korte geschiedenis van Matlab". www.mathworks.com. Opgehaald 4 september, 2021.
  27. ^ 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.
  28. ^ 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.
  29. ^ 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.
  30. ^ 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.
  31. ^ 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.
  32. ^ Loturco, Lori (28 januari 2020). "Het tempo van engineering versnellen". MIT News. Massachusetts Institute of Technology. Opgehaald 16 september, 2020.
  33. ^ 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.
  34. ^ 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.
  35. ^ 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.
  36. ^ "Matlab -documentatie". MathWorks. Opgehaald 14 augustus, 2013.
  37. ^ "MATLAB vergelijken met andere OO -talen". Matlab. MathWorks. Opgehaald 14 augustus, 2013.
  38. ^ "Creëer symbolische variabelen en uitdrukkingen". Symbolische wiskundetoolbox. MathWorks. Opgehaald 14 augustus, 2013.
  39. ^ "Matrix -indexering". MathWorks. Opgehaald 14 augustus, 2013.
  40. ^ "Structuren". MathWorks. Opgehaald 14 augustus, 2013.
  41. ^ "Veldnamen uit variabelen genereren". MathWorks. Opgehaald 14 augustus, 2013.
  42. ^ "Case en ruimtegevoeligheid". MathWorks. Opgehaald 1 november, 2019.
  43. ^ "Functie behandelt". MathWorks. Opgehaald 14 augustus, 2013.
  44. ^ "Anonieme functies". MathWorks. Opgehaald 14 augustus, 2013.
  45. ^ "Geneste functies". MathWorks.
  46. ^ "Object georiënteerd programmeren". MathWorks. Opgehaald 14 augustus, 2013.
  47. ^ "Klassen met handvat en waarde vergelijken". MathWorks.
  48. ^ "Matlab Gui". MathWorks. 30 april 2011. Opgehaald 14 augustus, 2013.
  49. ^ "Maak een eenvoudige gids GUI". MathWorks. Opgehaald 14 augustus, 2014.
  50. ^ "Matlab App Designer". MathWorks. Opgehaald 1 november, 2019.
  51. ^ "Toepassingsprogrammeerinterfaces naar MATLAB". MathWorks. Gearchiveerd van het origineel Op 15 september 2017. Opgehaald 14 augustus, 2013.
  52. ^ "Create Mex-Files". MathWorks. Gearchiveerd van het origineel op 3 maart 2014. Opgehaald 14 augustus, 2013.
  53. ^ Spielman, Dan (10 februari 2004). "C en Matlab verbinden". Yale University, afdeling informatica. Opgehaald 20 mei, 2008.
  54. ^ "Matlab -motor voor Python". MathWorks. Opgehaald 13 juni, 2015.
  55. ^ "Bel Python -bibliotheken". MathWorks. Opgehaald 13 juni, 2015.
  56. ^ "Externe programmeertaalinterfaces". MathWorks. Gearchiveerd van het origineel op 11 maart 2014. Opgehaald 14 augustus, 2013.
  57. ^ "Perl -script aanroepen met behulp van het juiste uitvoerbaar besturingssysteem". MathWorks. Opgehaald 7 november, 2013.
  58. ^ "Matlab Builder Ja". MathWorks. Opgehaald 7 juni, 2010.
  59. ^ Altman, Yair (14 april 2010). "Java-to-Matlab-interface". Matlab zonder papieren. Gearchiveerd van het origineel Op 5 september 2015. Opgehaald 7 juni, 2010.
  60. ^ Kaplan, Joshua. "Matlabcontrol JMI".
  61. ^ a b "MATLAB MOTOR API voor Java". MathWorks. Opgehaald 15 september, 2016.
  62. ^ Germundson, Roger (30 september 1998). "Mama: Matlab bellen uit Mathematica met Mathlink". Wolfram -onderzoek. Wolfram Library Archive.
  63. ^ rsmenon; Szhorvat (2013). "Matlink: communiceer met Matlab uit Mathematica". Opgehaald 14 augustus, 2013.
  64. ^ Weitzel, Michael (1 september 2006). "MATHML Import/exporteren". MathWorks - File Exchange. Gearchiveerd van het origineel Op 25 februari 2011. Opgehaald 14 augustus, 2013.
  65. ^ Shaukat, Kamran, et al. "Een vergelijkende studie van numerieke analysepakketten." International Journal of Computer Theory and Engineering 10.3 (2018): 67-72.
  66. ^ "US militair verbod vergrendelt twee Chinese universiteiten uit populaire software". Zuid -China Morning Post. 12 juni 2020. Opgehaald 6 november, 2020.
  67. ^ 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.
  68. ^ 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.
  69. ^ Moler, Cleve (januari 2006). "De groei van Matlab en de Mathworks gedurende twee decennia". Nieuws en opmerkingen nieuwsbrief. MathWorks. Opgehaald 14 augustus, 2013.
  70. ^ "MATLAB -systeemvereisten - release 13". MathWorks. Opgehaald 6 oktober, 2015.
  71. ^ "Dynamische functiecreatie met anonieme en geneste functies". MathWorks. Opgehaald 15 januari, 2016.
  72. ^ Matlab parallel computing toolbox gebruikershandleiding (PDF)
  73. ^ "Memory Mapping". MathWorks. Opgehaald 22 januari, 2014.
  74. ^ "MATLAB BSXFUN". MathWorks. Opgehaald 22 januari, 2014.
  75. ^ "Matlab -versies voorafgaand aan R2007A onder Windows Vista?". MathWorks. 3 september 2010. Opgehaald 8 februari, 2011.
  76. ^ "OOP -compatibiliteit met eerdere versies". MathWorks. Opgehaald 11 maart, 2013.
  77. ^ "Pakketten maken naamruimten". MathWorks. Opgehaald 22 januari, 2014.
  78. ^ "Kaartcontainers". MathWorks. Opgehaald 22 januari, 2014.
  79. ^ "Een willekeurige nummersstroom maken en controleren". MathWorks. Opgehaald 22 januari, 2014.
  80. ^ "Nieuwe MATLAB externe interface -functies in R2009A". MathWorks. Opgehaald 22 januari, 2014.
  81. ^ "Negeer functie -uitgangen". MathWorks. Opgehaald 22 januari, 2014.
  82. ^ "Functie -ingangen negeren". MathWorks. Opgehaald 22 januari, 2014.
  83. ^ "Werken met opsommingen". MathWorks. Opgehaald 22 januari, 2014.
  84. ^ "MathWorks kondigt release 2010b aan van de MATLAB- en Simulink -productfamilies - eejournal". Eejournal - Electronic Engineering Journal. 3 september 2010. Opgehaald 24 november, 2020.
  85. ^ "Wat is er nieuw in release 2010b". MathWorks. Gearchiveerd van het origineel op 25 november 2015. Opgehaald 22 januari, 2014.
  86. ^ "Nieuwe RNG -functie voor het beheersen van willekeurige nummergeneratie in release 2011a". MathWorks. Opgehaald 22 januari, 2014.
  87. ^ "MATLAB RNG". MathWorks. Opgehaald 22 januari, 2014.
  88. ^ "Vervang ontmoedigde syntaxis van Rand en Randn". MathWorks. Opgehaald 22 januari, 2014.
  89. ^ "Matlab Matfile". MathWorks. Opgehaald 22 januari, 2014.
  90. ^ "Matlab Max -werknemers". Opgehaald 22 januari, 2014.
  91. ^ 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.
  92. ^ Shure, Loren (september 2012). "The Matlab R2012B Desktop - Deel 1: Inleiding tot de ToolStrip".
  93. ^ "Matlab -apps". MathWorks. Opgehaald 14 augustus, 2013.
  94. ^ "MATLAB -eenheid Testkader". MathWorks. Opgehaald 14 augustus, 2013.
  95. ^ "MathWorks kondigt release 2013b aan van de MATLAB- en Simulink -productfamilies". MathWorks. September 2013.
  96. ^ "R2013B Release Notes". MathWorks. Opgehaald 17 september, 2018.
  97. ^ "Matlab -tafels". MathWorks. Opgehaald 14 september, 2013.
  98. ^ "MathWorks kondigt release 2014a aan van de MATLAB- en Simulink -productfamilies". MathWorks. Opgehaald 11 maart, 2014.
  99. ^ "Graphics verandert in R2014B". MathWorks. Opgehaald 3 oktober, 2014.
  100. ^ "UITAB: Paneel met tabbladen maken". MathWorks. Opgehaald 3 oktober, 2014.
  101. ^ "Toolboxes maken en delen". MathWorks. Opgehaald 3 oktober, 2014.
  102. ^ "Datums en tijd". MathWorks. Opgehaald 3 oktober, 2014.
  103. ^ "Integratie van bronbesturing". MathWorks. Opgehaald 3 oktober, 2014.
  104. ^ "Matlab MapReduce en Hadoop". MathWorks. Gearchiveerd van het origineel op 4 oktober 2014. Opgehaald 3 oktober, 2014.
  105. ^ "Bel Python -bibliotheken". MathWorks. Opgehaald 3 oktober, 2014.
  106. ^ "Matlab -motor voor Python". MathWorks. Opgehaald 3 oktober, 2014.
  107. ^ "MATLAB -uitvoeringsmotor". MathWorks. Opgehaald 15 september, 2016.
  108. ^ "Grafiek- en netwerkalgoritmen". MathWorks. Opgehaald 15 september, 2016.
  109. ^ "Mingw-W64 Compiler installeren". MathWorks. Opgehaald 15 september, 2016.
  110. ^ "Wat is een live script?". MathWorks. Gearchiveerd van het origineel Op 25 februari 2018. Opgehaald 15 september, 2016.
  111. ^ "Matlab App Designer". MathWorks. Opgehaald 15 september, 2016.
  112. ^ "Functies toevoegen aan scripts". MathWorks. Opgehaald 15 september, 2016.
  113. ^ "Lange arrays". MathWorks. Opgehaald 15 september, 2016.
  114. ^ "Stringarrays maken". MathWorks. Opgehaald 15 september, 2016.
  115. ^ "JSON FORMAT - MATLAB & SIMULINK". Mathworks.com. Opgehaald 20 augustus, 2017.
  116. ^ "Matlab online". MathWorks. Opgehaald 10 april, 2017.
  117. ^ "Valideer de eigenschapswaarden". MathWorks. Opgehaald 10 april, 2017.
  118. ^ "Mocking Framework". MathWorks. Opgehaald 10 april, 2017.
  119. ^ "Warmtemap maken van tabelgegevens". MathWorks. Opgehaald 10 april, 2017.
  120. ^ Morris, Kevin (27 maart 2018). "Diep leren met Matlab". Electronic Engineering Journal. Opgehaald 23 november, 2020.
  121. ^ "MathWorks kondigt release 2018a aan van de MATLAB- en Simulink -productfamilies". MathWorks. Opgehaald 5 april, 2018.
  122. ^ "Matlab voegt nieuwe mogelijkheden toe met release R2018A". InsideHPC. 18 maart 2018. Opgehaald 23 november, 2020.
  123. ^ Michel, Stefanie (15 oktober 2018). "MathWorks Erweitert Deep-Learning-Funktionen Im Neuen release". Mm maschinenmarkt (In het Duits). Opgehaald 23 november, 2020.
  124. ^ "MathWorks kondigt release 2019b van Matlab en Simulink aan". Evaluatie -engineering. Opgehaald 23 november, 2020.
  125. ^ Schlichtmeier, Tobias (20 september 2019). "MathWorks Stellt Update VOR: Release 2019b für Matlab und Simulink". Elektoniknet (In het Duits). Opgehaald 23 november, 2020.
  126. ^ a b "Cripple niet langer: Matlab draait nu op AMD CPU's op volle snelheid - ExtremeTech". www.extremetech.com. Opgehaald 29 oktober, 2020.
  127. ^ "MathWorks levert AI -mogelijkheden aan ingenieurs en wetenschappers". Maandelijks fabrikanten. 8 mei 2020. Opgehaald 23 november, 2020.
  128. ^ "MathWorks levert extra AI -mogelijkheden met release 2020A van Matlab en Simulink". Hpcwire. 8 mei 2020. Opgehaald 23 november, 2020.
  129. ^ Manners, David (24 september 2020). "MathWorks werkt Simulink- en Matlab -families bij". Elektronica wekelijks. Opgehaald 23 november, 2020.
  130. ^ "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.

Externe links