[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Programme_starten: Ein Programm starten] [:Menüeditor: Programme zum Menü hinzufügen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./MATLAB.gif, align=left)]] [https://de.mathworks.com/ Matlab] {de} ist eine kommerzielle, plattformunabhängige Software zur Lösung mathematischer Probleme sowie zur grafischen Darstellung von Ergebnissen. Matlab ist eine speziell entwickelte Sprache für technische Berechnungen und eine interaktive Umgebung für die Algorithmenentwicklung, die Visualisierung und Analyse von Daten sowie für numerische Berechnungen. Mit Matlab lassen sich technische Probleme schneller lösen als mit herkömmlichen Programmiersprachen wie C, C++ und Fortran. Im Gegensatz zu Computer-Algebra-Systemen dient Matlab nicht der symbolischen, sondern primär der numerischen Lösung von Problemen. Die Software kommt – in Industrie und an Hochschulen – vor allem für numerische Simulationen zum Einsatz. [[Bild(./R2012b.png, 300, right)]] Matlab erlaubt es auch, in Matlab geschriebene Skripte in lauffähige C-Programme zu übersetzen, zum Beispiel um mathematische Module zu entwickeln, die dann in einem größeren C-Projekt angewendet werden. Auch ist es möglich, aus Matlab heraus Funktionen und Bibliotheken, die in verschiedenen Sprachen geschrieben wurden, zu verwenden. Die Studierendenversion von Matlab ist eine leicht abgespeckte Version der Mathematiksoftware. Sie beinhaltet aber alle nötigen Elemente, um wissenschaftliche Aufgaben zu lösen. So befindet sich auf der DVD auch die Software Simulink, welche zur Modellierung von Systemen dient. Es gibt einige freie Alternativen zu Matlab, die teilweise auch mit Matlab kompatibel sind: * [:Octave:] * [:Scilab:] * [sourceforge2:freemat:FreeMat] {en} = Installation = [[Vorlage(Fremd, Software)]] {{{#!vorlage Hinweis Diese Anleitung wurde für die Lizenzierung über eine MATLAB-Campuslizenz erstellt. Bei anderen Lizenzierungsmodellen kann das Vorgehen abweichen. Es wird die Installation von MATLAB R2019b beschrieben. Die Vorgehensweise sollte sich aber auf andere Versionen übertragen lassen. Lediglich die Dateinamen müssen angepasst werden. }}} Um das Installationsprogramm herunterladen zu können, muss man zunächst über seine Hochschule einen Mathworks Account erstellen. Dieses Vorgehen wird in der Regel auf der Webseite der eigenen Hochschule beschrieben. Ist ein Mathworks Account erstellt, meldet man sich an und navigiert zum Menüpunkt ''"My Account"''. Dort werden alle lizenzierten Softwareprodukte aufgeführt. Über den Download-Knopf bei der jeweiligen Lizenz kann das Installationsprogramm heruntergeladen werden. Das Installationsprogramm ist in ein Zip-Archiv verpackt und muss zunächst in ein Verzeichnis wie '''./Matlab''' entpackt werden: {{{#!vorlage Befehl unzip matlab_R2019b_glnxa64.zip -d Matlab }}} Am einfachsten wird die Installation durch das Ausführen des Installationsskripts '''./Matlab/install''' durchgeführt. Soll Matlab in ein Verzeichnis installiert werden, in dem man keine Schreibrechte hat, muss dies als Root durchgeführt werden. {{{#!vorlage Befehl cd Matlab sudo ./install }}} [[Bild(Matlab_Installation_Start.png, 300, right)]] Es öffnet sich ein grafischer Installer, bei dem zuerst die Installationsmethode gewählt werden muss. Steht eine Internetverbindung zur Verfügung, gelingt dies am einfachsten durch das Anmelden mit dem Mathworks Account. Nach der Auswahl der Lizenz wird man nach dem gewünschten Installationspfad gefragt. Hier kann zum Beispiel '''/opt/MATLAB/R2019b''' eingegeben werden. Nach der Wahl der zu installierenden Toolboxen und der Installationsoptionen lädt das Installationsprogramm Matlab herunter und installiert es. Ist dies geschehen, muss Matlab aktiviert werden. Nach der erfolgreichen Installation können die nicht mehr benötigten Installationsdateien entfernt werden. {{{#!vorlage Befehl cd .. rm -rf Matlab rm matlab_R2019b_glnxa64.zip }}} = Benutzung = == Start == Ist die Installation abgeschlossen, kann Matlab mit dem Befehl {{{#!vorlage Befehl matlab }}} im grafischen Modus oder mit {{{#!vorlage Befehl matlab -nodesktop }}} in einem Terminal gestartet werden. Die grafische Oberfläche der 32-Bit-Version lässt sich genau wie die Installation (siehe unten) unter 64-Bit-Systemen mit folgendem Befehl starten: {{{#!vorlage Befehl matlab -glnx86 }}} Es ist sinnvoll, dafür ein [:alias:] anzulegen: {{{#!vorlage Befehl alias matlab="matlab -glnx86" }}} == Verknüpfungen anlegen == Eine Verknüpfung für Matlab, inklusive hochauflösendem Icon, ist über die Installation des folgenden Paketes möglich: {{{#!vorlage Paketinstallation matlab-support, multiverse }}} Während der Installation dieses Paketes muss man den entsprechenden Installationspfad von Matlab angeben. == Verknüpfungen manuell anlegen == Will man Verknüpfungen zu Matlab anlegen, so muss darauf geachtet werden, dass diese den Parameter `-desktop` enthalten, da sonst Matlab nur kurz seinen Splash-Screen zeigt, aber nicht startet. Die Option `-nosplash` unterdrückt den Splash-Screen und beschleunigt dadurch den Programmstart. Die Icons zu Matlab befinden sich im Matlab-Installationsverzeichnis unter '''X11/icons/'''. Sie sind jedoch nicht hochauflösend, man kann sich aber folgendes Icon herunterladen: {{{#!vorlage Befehl sudo wget https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/icons/matlab.png }}} Die Verknüpfung kann beispielsweise mit {{{#!vorlage Befehl sudo nano /usr/share/applications/matlab.desktop }}} angelegt werden. Der folgende Text wird eingefügt. Die Zeile '''Name''' kann der jeweiligen Programmversion angepasst werden. Die letzte Zeile ist für gewöhnlich auskommentiert, sorgt so jedoch dafür, dass im Unity-Dash das Programm-Icon nicht mehrfach erscheint. __Hinweis:__ Bisweilen kommt es vor, dass Matlab erst startet, wenn der Pfad direkt angegeben wird. {{{ #!/usr/bin/sh [Desktop Entry] Type=Application Icon=/usr/share/icons/matlab.png Name=MATLAB R2012a Comment=Start MATLAB - The Language of Technical Computing #Uncomment the following line and comment the line after to #force matlab to use the 32 bits architecture #Exec=matlab -arch=glnx86 -desktop Exec=matlab -desktop #Sollte funktionieren. Wenn nicht: Auskommentieren, untere Zeile einkommentieren und den Pfad anpassen. #Exec=/usr/local/MATLAB/R2012a/bin/matlab -desktop Categories=Development; #Uncomment the following line if you've got several matlab icons in the launcher StartupWMClass=com-mathworks-util-PostVMInit }}} Um mit Matlab zu arbeiten, benötigt dieses ein "Arbeitsverzeichnis", aus dem die sogenannten "m-Files" eingelesen werden können. Dies ist standardmäßig auf '''/home/BENUTZER''' beschränkt. Möchte man ein weiteres Verzeichnis hinzufügen, so muss Matlab mit Root-Rechten gestartet werden, bevor über ''"File/Set Path"'' Verzeichnisse hinzugefügt oder verändert werden können. == Startup-Skript == Matlab hat ein globales Startup-Skript, '''matlabrc.m'''. Dieses führt, falls im "Arbeitsverzeichnis" vorhanden, die Datei '''startup.m''' aus. '''startup.m''' ist gedacht für Benutzereinstellungen, um beispielsweise Konstanten zu definieren, in ein bestimmtes Verzeichnis zu wechseln oder ähnliche Aktionen durchzuführen. Soll Matlab bei seinem Start automatisch in das Verzeichnis wechseln, in dem die '''.m'''-Files" gespeichert sind, kann in der Datei '''/home/BENUTZER/startup.m''' (diese wird nicht automatisch bei der Installation angelegt) die Zeile {{{ cd PFAD/ZU/DEN/M-FILES }}} ergänzt werden. In neueren Matlab-Versionen kann dieser Pfad auch in der grafischen Bedienoberfläche über ''"Preferences → General → Initial working folder"'' angegeben werden. == Toolboxen == Eine Stärke von Matlab sind seine sogenannten Toolboxen, speziell für bestimmte Einsatzgebiete geschriebene Erweiterungen. So gibt es Toolboxen für die industrielle Bildverarbeitung, für Berechnungen im Flug- und Raumfahrtsbereich, für die Finanzmathematik und vieles mehr. === MuPAD === {{{#!vorlage Hinweis Seit der Matlab Version R2016a wird das MuPAD-Notebook nicht mehr aktualisiert. Es ist zwar noch aufrufbar, soll aber in einer späteren Version entfernt werden. Mathworks empfielt stattdessen die Verwendung des ''MATLAB Live Editor'' zur Durchführung und Dokumentation von symbolischen Rechnungen. }}} [[Bild(./mupad.png, 200, right)]] Das ehemals eigenständige Computeralgebrasystem MuPAD wurde, nachdem The MathWorks (Hersteller von Matlab) SciFace (Hersteller von MuPAD) übernommen hatte, als Toolbox in Matlab integriert. Da MuPAD ursprünglich ein eigenständiges Programm war, besitzt MuPAD auch heute noch eine von Matlab abweichende Syntax. Der Zuweisungsoperator in MuPAD ist beispielsweise `:=`, während er in Matlab `=` ist. Gestartet wird MuPAD aus Matlab heraus entweder mit {{{#!vorlage Befehl mupad }}} oder über das Matlab-Startmenü unter ''"Toolboxes/Symbolic Math"''. == Simulink == Eine weitere Stärke von Matlab ist Simulink, ein eigentlich eigenständiges Programm für Simulationen von Modellen jeglicher Art, das aber zum Betrieb Matlab benötigt und somit in der Regel mitinstalliert ist. Simulink lässt sich über das Matlab-Startmenu starten. = Problemlösungen = {{{#!vorlage Hinweis Dieser Abschnitt wurde nicht mit neuen Versionen getestet. Die Anleitungen sind möglicherweise veraltet. }}} == Probleme bei der Installation/Benutzung == Probleme während dem Gebrauch von Matlab, wie zum Beispiel Abstürze oder nicht funktionierende Starts, sowie Probleme mit der GUI von Matlab liegen meist an einer falschen Verknüpfung von Java in Matlab. Dieses Problem kann behoben werden, indem man der Datei '''~/matlab7/bin/matlab''' folgende Zeile hinzufügt: {{{ export MATLAB_JAVA=/usr/bin/java }}} == MATLAB startet nicht == === MATLAB bleibt im Splash-Screen hängen === Nach der Installation kann es vorkommen, dass MATLAB nicht startet, sondern im Splash-Screen hängen bleibt. Grund ist der Ordner '''./matlab''' im Homeverzeichnis, welcher bei der Installation mit Root-Rechten angelegt wird und deshalb für den späteren Nutzer nicht zugänglich ist. Das Löschen des Ordners löst das Problem (siehe auch [topic:matlab-startet-nicht-wiki-unklar:Thread im Forum]). === Matlab startet nur über das Installationsverzeichnis == Lässt sich Matlab über '''/usr/bin/matlab''' nicht öffnen, dafür aber über das Installationsverzeichnis, liegt das wahrscheinlich an dem Skript, das der Installer unter '''/usr/bin''' abgelegt hat. Das Problem lässt sich lösen, indem ein symbolischer Link auf das Installationsverzeichnis gesetzt wird. {{{#!vorlage Befehl sudo rm /usr/bin/matlab sudo ln -s /pfad/zu/bin/matlab /usr/bin/matlab }}} == Segmentation violoation beim starten in Ubuntu 16.04 == Die C-Library, die Matlab nutzt ist veraltet und harmonisiert nicht mit dem System. * Navigiere dahin wo Matlab installiert ist. Standard ist /usr/local/MATLAB/R2016a/ * Navigiere zu /sys/os/glnxa64 * Benenne die Datei libstdc++.so.6 zu libstdc++.so.6.old um. == Probleme mit GUI/Compiz == Wenn Compiz aktiviert ist, wird das Matlab-Fenster grau erscheinen, außer dem Start-Button unten links ist nichts zu sehen. Durch das Hinzufügen des korrekten Pfades zu Java im Matlab-Startskript sollte es funktionieren. Evtl. muss der Pfad angepasst werden, falls eine andere Java-Version installiert ist. Das Startskript '''bin/matlab''' befindet sich im Matlab-Installationsverzeichnis und sollte dann auf den ersten paar Zeilen so aussehen: {{{ #!/bin/sh export MATLAB_JAVA=/usr/lib/jvm/java-6-sun/jre/ # Name: # matlab script file for invoking MATLAB # }}} [post:1156008:Hier] und [post:1914485:hier] werden im Forum weitere Lösungen für GUI-Probleme beschrieben Auch die unter [#Probleme-bei-der-Installation-Benutzung Probleme bei der Installation] genannte export-Zeile könnte das GUI/Java Problem lösen == Konfiguration kann nicht gespeichert werden == Wird im ''Command Window'' alle paar Sekunden die Nachricht `The desktop configuration was not saved successfully` angezeigt, passen die Rechte des versteckten Matlab-Verzeichnis nicht. Dazu folgenden Befehl in einem Terminal ausführen: {{{#!vorlage Befehl sudo chown -R USERNAME:USERNAME ~/.matlab }}} Dabei `USERNAME` durch den eigenen Benutzernamen ersetzen. == Probleme beim Drucken == Sollte beim Drucken in der Java-Oberfläche von Matlab 2008 nur eine Fehlermeldung der Form `Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: null attribute` auftreten, liegt dies leider an der Kombination von Java mit CUPS. Ein Behelf funktioniert wie folgt: die Datei '''/etc/cups/printers.conf''' wird editiert und vor `` die Zeile {{{ Option orientation-requested 3 }}} eingefügt. == Probleme mit der Darstellung der Schriften == Wird in den Figures nur die Schriftart Courier dargestellt oder können keine LaTeX-Symbole dargestellt werden, so müssen folgende Pakete nachinstalliert werden: {{{#!vorlage Befehl sudo apt-get install xfonts-75dpi xfonts-100dpi }}} Die neu installierten Schriften werden erst nach Abmeldung und erneuter Anmeldung aktiv. == Matlab über ssh und screen == Zwei Probleme treten auf: Matlab erwartet standardmäßig von stdin lesen zu können. Deshalb kann man ein Matlab-Skript nicht einfach im Hintergrund starten. Stattdessen muss stdin umgeleitet werden: [https://de.mathworks.com/matlabcentral/answers/91998-why-is-the-matlab-startup-option-r-not-working-properly-on-c-unix-shell Matlab im Hintergrund] {en}. Zusätzlich startet Matlab standardmäßig einen Desktop und gibt X11-Befehle aus. Deshalb kann man sich – trotz screen – nicht von der ssh-Verbindung trennen ohne Matlab abzuschießen. Der lokale Rechner müsste also, trotz Verwendung von [:Screen:] während des Ausführens eines Matlab-Skripts zusätzlich die ganze Zeit laufen. Würde die ssh-Verbindung gekappt, würde auch Matlab abgeschossen. Um das zu umgehen und die ssh-Verbindung trennen zu können, hat sich folgende Vorgehensweise bewährt: Zunächst per ssh auf den Ziel-Rechner verbinden. Dort eine Screen-Session starten {{{#!vorlage Befehl screen -S MatlabSession }}} Den Matlab-Befehl {{{#!vorlage Befehl matlab -nojvm -nosplash -nodesktop -nodisplay -r "BEFEHL;exit;" >logdatei.txt logdatei.txt logdatei.txt > ~/Documents/MATLAB/startup.m }}} = Links = * [https://de.mathworks.com/ Offizielle Webpräsenz] {de} * [https://de.mathworks.com/matlabcentral/fileexchange/ MatlabCentral (Programmdatenbank)] {en} # tag: Bildung, unfreie Software, Mathematik, Java