ubuntuusers.de

Matlab

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./MATLAB.gif Matlab 🇩🇪 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.

./R2012b.png 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:

Installation

Hinweis!

Fremdsoftware kann das System gefährden.

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:

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.

cd Matlab
sudo ./install 

Matlab_Installation_Start.png

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.

cd ..
rm -rf Matlab
rm matlab_R2019b_glnxa64.zip 

Benutzung

Start

Ist die Installation abgeschlossen, kann Matlab mit dem Befehl

matlab 

im grafischen Modus oder mit

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:

matlab -glnx86 

Es ist sinnvoll, dafür ein alias anzulegen:

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:

  • matlab-support (multiverse)

Paketliste zum Kopieren:

sudo apt-get install matlab-support 

Oder mit apturl die Pakete installieren. Link: apt://matlab-support

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:

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

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

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.

./mupad.png 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

mupad  

oder über das Matlab-Startmenü unter "Toolboxes/Symbolic Math".

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

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 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.

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
#

Hier und hier werden im Forum weitere Lösungen für GUI-Probleme beschrieben

Auch die unter 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:

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 </printer> 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:

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: Matlab im Hintergrund 🇬🇧. 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

screen -S MatlabSession 

Den Matlab-Befehl

matlab -nojvm -nosplash -nodesktop -nodisplay -r "BEFEHL;exit;" >logdatei.txt </dev/null  

oder das Matlab-Skript (hier MATLABSCRIPT.m im aktuellen Verzeichnis) starten

matlab -nojvm -nosplash -nodesktop -nodisplay -r "MATLABSCRIPT;exit;" >logdatei.txt </dev/null  

Beim Start eines Skripts ist wichtig, die Dateiendung .m im Aufruf wegzulassen. Die Log-Datei logdatei.txt ist optional, man kann auch ins Datengrab /dev/null umleiten. Alternativ kann man das Skript auch direkt auf stdin umleiten

matlab -nojvm -nosplash -nodesktop -nodisplay >logdatei.txt <MATLABSCRIPT.m 

Wichtig ist dann, dass in MATLABSCRIPT.m am Ende exit; steht.

Die Optionen -nodesktop und -nodisplay sind entscheidend: -nodesktop startet Matlab von der Konsole, -nodisplay unterbindet die Ausgabe von X11-Befehle. Ohne die letzte Option kann man sich zwar von der Screen-Session detachen ( Strg + A + D ), allerdings kann man dann nicht die ssh-Verbindung trennen, ohne Matlab abzuschießen. Mit den beiden Optionen kann man die Screen-Session nun detachen, die ssh-Verbindung trennen und den lokalen Rechner herunterfahren. Die Option -nojvm ist optional. Werden im Skript Abbildungen erstellt, muss diese Option weggelassen werden.

Ist das Skript oder der Befehl durchgelaufen, kann man sich per ssh wieder auf den Zielrechner verbinden und die Matlab-Session wieder aufnehmen

screen -r MatlabSession 

Ständig hohe CPU-Auslastung

Unter Ubuntu kann es dazu kommen, dass Matlab ständig die CPU belegt, obwohl keine Matlab-Programme ausgeführt werden. Das kann am internen Browser für die Hilfeseiten liegen, für den standardmäßig der JxBrowser aktiviert ist. Auf eine weniger CPU-lastige HTML-Darstellung wechselt man durch die Eingabe in das Matlab-Command-Fenster: Quelle 🇬🇧

com.mathworks.mlwidgets.html.HtmlComponentFactory.setDefaultType('HTMLRENDERER'); 

Compiler und MEX Functions

Matlab unterstützt oft nur Compilerversionen, die älter sind als die von Ubuntu ausgelieferten. Damit Matlab reibungslos kompiliert werden kann, muss der passende Compiler nachinstalliert werden und Matlab kenntlich gemacht werden. Die folgenden Befehle wurden getestet auf Ubuntu 15.10 mit Matlab 2015b. In diesem Fall wird die Version 4.7 benötigt. Je nach Matlab-Version ist die Compilerversion anzupassen.

sudo apt-get install gcc-4.7-multilib libstdc++6-4.7-dev
mkdir ~/.matlab/bin
ln -s /usr/bin/gcc-4.7 ~/.matlab/bin/gcc
printf "setenv('PATH',sprintf('/home/%%s/.matlab/bin:%%s',getenv('USER'),getenv('PATH')));\n" >> ~/Documents/MATLAB/startup.m 

Diese Revision wurde am 3. Februar 2020 22:21 von kutteldaddeldu erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Java, Mathematik, Bildung, unfreie Software