MATLAB

MATLAB (Matrixlaboratorium) ist eine numerische Rechenumgebung und Programmiersprache der vierten Generation. Entwickelt von MathWorks erlaubt MATLAB Matrixmanipulationen, das Plotten von Funktionen und Daten, Durchführung von Algorithmen, Entwicklung von Benutzerschnittstellen und dem Verbinden mit Programmen, die auf anderen Sprachen, einschließlich C, C ++, Java und Fortran geschrieben sind.

Obwohl MATLAB in erster Linie für die numerische Computerwissenschaft beabsichtigt ist, verwendet ein fakultativer Werkzeugkasten MuPAD symbolischer Motor, Zugang zu symbolischen Rechenfähigkeiten erlaubend. Ein zusätzliches Paket, Simulink, fügt grafische Mehrbereichssimulation und Musterbasiertes Design für dynamische und eingebettete Systeme hinzu.

2004 hatte MATLAB ungefähr eine Million Benutzer über die Industrie und Akademie. MATLAB Benutzer kommen aus verschiedenen Hintergründen der Technik, Wissenschaft und Volkswirtschaft. MATLAB wird im akademischen und den Forschungseinrichtungen sowie den Industrieunternehmen weit verwendet.

Geschichte

Cleve Moler, der Vorsitzende der Informatik-Abteilung an der Universität New Mexicos, hat angefangen, MATLAB gegen Ende der 1970er Jahre zu entwickeln. Er hat es entworfen, um seinen Studentenzugang zu LINPACK und EISPACK ohne sie zu geben, die Notwendigkeit habend, Fortran zu erfahren. Es hat sich bald zu anderen Universitäten ausgebreitet und hat ein starkes Publikum innerhalb der Gemeinschaft der angewandten Mathematik gefunden. Jack Little, ein Ingenieur, wurde dazu während eines Besuchs Moler ausgestellt, der zur Universität von Stanford 1983 gemacht ist. Sein kommerzielles Potenzial anerkennend, hat er sich Moler und Steve Bangert angeschlossen. Sie haben MATLAB in C umgeschrieben und haben MathWorks 1984 gegründet, seine Entwicklung fortzusetzen. Diese umgeschriebenen Bibliotheken waren als JACKPAC bekannt. 2000 wurde MATLAB umgeschrieben, um einen neueren Satz von Bibliotheken für die Matrixmanipulation, LAPACK zu verwenden.

MATLAB wurde zuerst von Forschern und Praktikern in der Kontrolltechnik angenommen, Wenig ist Spezialisierung, aber schnell Ausbreitung zu vielen anderen Gebieten. Es wird jetzt auch in der Ausbildung, insbesondere das Unterrichten der geradlinigen Algebra und die numerische Analyse verwendet, und ist unter an der Bildverarbeitung beteiligten Wissenschaftlern populär.

Syntax

Die MATLAB Anwendung wird um die MATLAB Sprache gebaut, und der grösste Teil des Gebrauches von MATLAB ist mit dem Schreiben MATLAB Code ins Befehl-Fenster (als eine interaktive mathematische Schale), oder Durchführung von Textdateien verbunden, die MATLAB Code und Funktionen enthalten.

Variablen

Variablen werden mit dem Anweisungsmaschinenbediener definiert. MATLAB ist eine schwach dynamisch getippte Programmiersprache. Es ist eine schwach getippte Sprache, weil Typen implizit umgewandelt werden. Es ist eine dynamisch getippte Sprache, weil Variablen zugeteilt werden können, ohne ihren Typ zu erklären, außer, wenn sie als symbolische Gegenstände behandelt werden sollen, und dass sich ihr Typ ändern kann. Werte können aus Konstanten aus der Berechnung kommen, die mit Werten anderer Variablen, oder von der Produktion einer Funktion verbunden ist. Zum Beispiel:

>> x = 17

x =

17

>> x = 'Hut'

x =

Hut

>> y = x + 0

y =

104 97 116

>> x = [3*4, Pi/2]

x =

12.0000 1.5708

>> y = 3*sin (x)

y =

- 1.6097 3.0000

</Quelle>

Vectors/matrices

Wie angedeutet, durch seinen Namen (eine Zusammenziehung des "Matrixlaboratoriums") kann MATLAB schaffen und Reihe 1 (Vektoren), 2 (matrices), oder mehr Dimensionen manipulieren. In der MATLAB Mundart bezieht sich ein Vektor auf ein dimensionaler (1×N oder N×1) Matrix, allgemein gekennzeichnet als eine Reihe auf anderen Programmiersprachen. Eine Matrix bezieht sich allgemein auf eine 2-dimensionale Reihe, d. h. eine M×n-Reihe, wo M und n größer sind als 1. Die Reihe mit mehr als zwei Dimensionen wird mehrdimensionale Reihe genannt. Reihe ist ein grundsätzlicher Typ, und viele Standardfunktionen unterstützen heimisch Reihe-Operationen, die Arbeit an der Reihe ohne ausführliche Schleifen erlauben. Deshalb ist die MATLAB Sprache auch ein Beispiel der Reihe-Programmiersprache.

Eine einfache Reihe wird mit der Syntax definiert: initincrementterminator. Zum Beispiel:

>> ordnen = 1:2:9

ordnen Sie =

1 3 5 7 9

</Quelle>

definiert eine Variable genannt (oder teilt einen neuen Wert einer vorhandenen Variable mit dem Namen zu), der eine Reihe ist, die aus den Werten 1, 3, 5, 7, und 9 besteht. D. h. die Reihe fängt an 1 (der Init-Wert), Zunahme mit jedem Schritt vom vorherigen Wert durch 2 (der Zunahme-Wert), und Halt an, sobald es reicht (oder zu vermeiden zu weit zu gehen) 9 (der Terminator-Wert).

>> ordnen = 1:3:9

ordnen Sie =

1 4 7

</Quelle>

der Zunahme-Wert kann wirklich aus dieser Syntax (zusammen mit einem der Doppelpunkte) ausgeschlossen werden, um einen Verzug-Wert von 1 zu verwenden.

>> ari = 1:5

ari =

1 2 3 4 5

</Quelle>

teilt der Variable genannt eine Reihe mit den Werten 1, 2, 3, 4, und 5 zu, da der Verzug-Wert von 1 als der Vorwärtszähler verwendet wird.

Das Indexieren ist ein-basiert, der die übliche Tagung für matrices in der Mathematik, obwohl nicht für einige Programmiersprachen ist.

Matrices kann durch das Trennen der Elemente einer Reihe mit dem leeren Raum oder Komma und das Verwenden eines Strichpunkts definiert werden, um jede Reihe zu begrenzen. Die Liste von Elementen sollte durch eckige Klammern umgeben werden: []. Parenthesen: sind an Zugriffselemente und Subreihe gewöhnt (sie werden auch verwendet, um eine Funktionsargument-Liste anzuzeigen).

>> = [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

>> (2,3)

ans =

11

</Quelle>

Sätze von Indizes können durch Ausdrücke solcher als "2:4" angegeben werden, der zu [2, 3, 4] bewertet. Zum Beispiel kann eine Submatrix, die von Reihen 2 bis 4 und Spalten 3 bis 4 genommen ist, als geschrieben werden:

>> (2:4,3:4)

ans =

11 8

7 12

14 1

</Quelle>

Eine Quadratidentitätsmatrix der Größe n kann mit dem Funktionsauge erzeugt werden, und matrices jeder Größe mit Nullen oder kann mit den Funktionsnullen und beziehungsweise erzeugt werden.

>> Auge (3)

ans =

1 0 0

0 1 0

0 0 1

>> Nullen (2,3)

ans =

0 0 0

0 0 0

>> (2,3)

ans =

1 1 1

1 1 1</Quelle>

Die meisten MATLAB-Funktionen können matrices akzeptieren und werden sich jedem Element widmen. Zum Beispiel, wird jedes Element in "J" um 2 multiplizieren, und dann jedes Element modulo "n" reduzieren. MATLAB schließt wirklich Standard "für" ein, und "während" Schleifen, aber (als in anderen ähnlichen Anwendungen wie R), mit der vectorized Notation häufig Code erzeugen, der schneller ist, um durchzuführen. Dieser Code, der von der Funktion magic.m exzerpiert ist, schafft eine magische QuadratM für sonderbare Werte von n (MATLAB Funktion ist meshgrid hier an gewöhnt

erzeugen Sie Quadrat matrices I und J, der 1:n enthält).

[J, ich] = meshgrid (1:n);

A = mod (i+j-(n+3)/2, n);

B = mod (I+2*J-2, n);

M = n*A + B + 1;

</Quelle>

Strukturen

MATLAB hat Struktur-Datentypen. Da alle Variablen in MATLAB Reihe sind, ist ein entsprechenderer Name "Struktur-Reihe", wo jedes Element der Reihe dieselben Feldnamen hat. Außerdem unterstützt MATLAB dynamische Feldnamen (Feldblick-USV namentlich, Feldmanipulationen usw.). Leider MATLAB unterstützt JIT MATLAB Strukturen nicht, deshalb gerade wird eine einfache Bündelung von verschiedenen Variablen in eine Struktur an Kosten kommen.

Funktionsgriffe

MATLAB unterstützt Elemente der Lambda-Rechnung durch das Einführen von Funktionsgriffen oder Funktionsverweisungen, die entweder in.m Dateien oder in anonymen/verschachtelten Funktionen durchgeführt werden.

Klassen

Obwohl MATLAB Klassen hat, sind die Syntax und das Benennen der Vereinbarung von anderen Sprachen bedeutsam verschieden.

MATLAB hat Wertklassen und Bezugsklassen je nachdem, ob die Klasse Griff als eine Superklasse (für Bezugsklassen) oder nicht (für Wertklassen) hat.

Methode-Anruf-Verhalten ist zwischen Wert und Bezugsklassen verschieden. Zum Beispiel, ein Anruf zu einer Methode

object.method ;

</Quelle>

kann jedes Mitglied des Gegenstands nur verändern, wenn Gegenstand ein Beispiel einer Bezugsklasse ist.

Grafische und Grafikbenutzerschnittstelle-Programmierung

MATLAB Unterstützungen, die Anwendungen mit dem grafischen Benutzer entwickeln, verbinden Eigenschaften.

Es hat auch dicht einheitliche Graphen planende Eigenschaften. Zum Beispiel kann der Funktionsanschlag verwendet werden, um einen Graphen von zwei Vektoren x und y zu erzeugen. Der Code:

x = 0:pi/100:2*pi;

y = Sünde (x);

Anschlag (x, y)

</Quelle>

erzeugt die folgende Zahl der Sinusfunktion:

Ein MATLAB Programm kann dreidimensionale Grafik mit der Funktionsbrandung, plot3 oder Ineinandergreifen erzeugen.

Im Matlab grafischen Benutzer können Schnittstellen mit der GUI Designumgebung (FÜHRER) Werkzeug programmiert werden.

Objektorientierte Programmierung

Die Unterstützung von MATLAB für die objektorientierte Programmierung schließt Klassen, Erbe, virtuelle Absendung, Pakete, Vorbeigehen-Wert-Semantik und Vorbeigehen-Verweisungssemantik ein.

classdef hallo

Methoden

fungieren Sie doit (dieser)

disp ('Hallo!')

Ende

Ende

Ende

</Quelle>

Wenn gestellt, in eine genannte Datei kann das mit den folgenden Befehlen durchgeführt werden:

>> x = hallo;

>> x.doit;

Hallo!

</Quelle>

Das Verbinden mit anderen Sprachen

MATLAB kann Funktionen und Unterprogramme geschrieben auf der C Programmiersprache oder Fortran nennen. Eine Streifband-Funktion wird geschaffen, MATLAB Datentypen erlaubend, passiert und zurückgegeben zu werden. Dynamisch loadable geschaffene Gegenstand-Dateien durch das Kompilieren solcher Funktionen werden "MEX-Dateien" (für den MATLAB rechtskräftig) genannt.

Bibliotheken, die in Java, ActiveX oder.NET geschrieben sind, können von MATLAB direkt genannt werden, und viele MATLAB Bibliotheken (zum Beispiel XML oder SQL-Unterstützung) werden als Streifbänder um Bibliotheken von Java oder ActiveX durchgeführt. Das Benennen von MATLAB von Java ist mehr kompliziert, aber kann mit der MATLAB Erweiterung getan werden, die getrennt von MathWorks oder dem Verwenden eines undokumentierten Mechanismus genannt JMI verkauft wird (Java-to-Matlab Schnittstelle), der mit dem Java ohne Beziehung Metadata Schnittstelle nicht verwirrt sein sollte, die auch JMI genannt wird.

Da Alternativen zu MuPAD Symbolischen von MathWorks verfügbaren Mathewerkzeugkasten gestützt haben, kann MATLAB mit Maple oder Mathematica verbunden werden.

Bibliotheken bestehen auch, um MathML zu importieren und zu exportieren.

Lizenz

MATLAB ist ein Eigentumsprodukt von MathWorks, so sind Benutzer dem Verkäufer-Schloss - darin unterworfen. Obwohl MATLAB Baumeister MATLAB-Funktionen als Bibliotheksdateien einsetzen kann, die mit.NET oder javanischer Anwendung verwendet werden können, die Umgebung baut, wird zukünftige Entwicklung noch an die MATLAB Sprache gebunden.

Jeder Werkzeugkasten wird getrennt gekauft. Wenn eine Einschätzungslizenz gebeten wird, verlangt die Verkaufsabteilung von MathWorks ausführlich berichtete Information über das Projekt, für das MATLAB bewertet werden soll. Insgesamt ist der Prozess, eine Lizenz zu erwerben, finanziell und Zeit teuer. Wenn überhaupt gewährt (der häufig geschieht) die Einschätzungslizenz seit zwei bis vier Wochen gültig ist. Eine Studentenversion von MATLAB ist auch verfügbar.

Das Genehmigen der Software von Mathworks ist unter der Untersuchung für das Kartellverhalten durch die EU.

Alternativen

MATLAB hat mehrere Mitbewerber. Kommerzielle Mitbewerber schließen Mathematica, Ahorn, NÖRGLER, ein

IDL durch die ITT Sehinformation Solutions und Metlynx.

Es gibt auch freie offene Quellalternativen zu MATLAB, in der besonderen GNU-Oktave, FreeMat und Scilab, die beabsichtigt sind, um mit der MATLAB Sprache (aber nicht der MATLAB Tischumgebung) größtenteils vereinbar zu sein.

Unter anderen Sprachen, die Reihe als grundlegende Entitäten behandeln (ordnen Programmiersprachen), sind APL und J, Fortran 95 und 2003, sowie die statistische Sprache S (sind die Hauptdurchführungen von S S-PLUS und die populäre offene Quellsprache R).

Es gibt auch mehrere Bibliotheken, um ähnliche Funktionalität zu vorhandenen Sprachen, wie ES ++ für C ++, Perl Datensprache für Perl, ScalaLab für Scala und SciPy zusammen mit NumPy und Matplotlib für die Pythonschlange hinzuzufügen.

Ausgabe-Geschichte

Die Zahl (oder Ausgabenummer) ist die Version, die vom Concurent-Lizenzbetriebsleiter Programm FlexLM berichtet ist.

Dateierweiterungen

Eingeborener

.fig: MATLAB bemalen

.m: MATLAB Funktion, Schrift oder Klasse

.mat: MATLAB binäre Datei, um Variablen zu versorgen

.mex...: MATLAB rechtskräftig (Plattform spezifisch, z.B ".mexmac" für Mac, ".mexglx" für Linux, usw.)

.p: Inhalt-verdunkelte.m Datei von MATLAB (resultieren e )

Dritt-

.jkt: GPU Datei des Geheimen Lagers, die durch die Jacke für MATLAB (AccelerEyes) erzeugt ist

.mum: MATLAB für das KAP OFFENE Einheitsoperationsmusterdatei (AmsterCHEM)

Osterneier

Mehrere Osterneier bestehen in der Software. Diese schließen verborgene Bilder, und zufällig in den Witzen ein. Zum Beispiel, in MatLab versuchen, im "Spion", "Penny", "Leben", oder "warum" zu tippen.

Siehe auch

  • Liste der numerischen Analyse-Software
  • Vergleich der numerischen Analyse-Software

Zeichen

Außenverbindungen


Marie Curie / (Der Fluss) Meuse
Impressum & Datenschutz