Vergleich von Octave, Spyder, Freemat und Scilab als Alternativen zu MATLAB

20

Ich versuche eine Alternative für MATLAB zu finden und habe bisher gefunden:

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

Ich versuche, die beste Alternative zu MATLAB zu finden. Mir geht es vor allem um die Leistung und die Integrität der Ergebnisse.

user33831
quelle
1
Sie sollten auch R berücksichtigen. Diese Frage auf StackOverflow hat wahrscheinlich den besten Vergleich
Oli
IPython fehlt
Zetah

Antworten:

10

Ich habe alle von Ihnen erwähnten Programmiersprachen / -software verwendet. FreeMat und Spyder Ich habe nicht zu viel Erfahrung mit, aber ich habe einige. Die anderen, in denen ich Erfahrung habe.

GNU Octave ist bei weitem die Konkurrenz. Die Syntax ist extrem kompatibel mit der von MATLAB . Die einzigen Unterschiede, ich bin mir dessen bewusst zumindest, abgesehen von der ungeraden Toolbox, die Sie können versuchen , durch die Pakete zu ersetzen hier ist , dass GNU Octave Funktionen von der Kommandozeile definieren.

Ich weiß nicht, ob Ihnen QtOctave bekannt ist . QtOctave ist ein Frontend (GUI) für die Programmiersprache GNU Octave. QtOctave enthält auch einen Editor.

Scilab ist auch ein adäquater Ersatz für MATLAB. Es hat einige Unterschiede in Bezug auf die Syntax, aber nichts, was Sie nicht verstehen können, wenn Sie die Dokumentation durchsuchen, die damit geliefert wird.

FreeMat ist meiner Meinung nach die schlechteste Software, deren Syntax stark auf MATLAB basiert. Mein Beweis dafür ist dreiteilig: Erstens erhält es im Software-Center die niedrigste Sternebewertung der vier fraglichen Software. Zweitens wurde es nicht häufig aktualisiert, die neueste Version im Software-Center wurde zuletzt 2008 aktualisiert. Drittens sind seine Funktionen aufgrund meines zweiten Beweisstücks etwas verzögert. Die positive Seite ist jedoch, dass seine Syntax sehr gut mit MATLABs kompatibel ist.

Ich habe Spyder benutzt , aber ich habe nur kurz Angst. Es scheint von höchster Qualität zu sein. Das Problem dabei ist, dass es syntaktisch nur eine eingeschränkte Kompatibilität mit MATLAB hat. Sie müssen einige Python-Programmiersprachen erlernen, wenn Sie dies gut können möchten.

Ich würde auch SageMath empfehlen, da es GNU Octave enthält (wenn es bereits auf Ihrem System installiert ist). Scilab (wenn Sie es bereits installiert haben) ] Scipy, Matplotlib, Maxima, Fortran unter vielen anderen. Sie können SageMath herunterladen, indem Sie auf der Website http://www.sagemath.org/download-linux.html einen geeigneten Mirror auswählen und die entsprechende .tar.lzma-Datei installieren. Kopieren Sie anschließend die folgenden Befehle und fügen Sie sie in das Terminal ein (Strg + Alt + T):

cd ~/Downloads
sudo mv sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma /home/username
cd ~
tar --lzma -xvf sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma
cd ~/sage-linux-xbit-ubuntu_y-z-Linux
make
sudo ln -s /home/username/sage-linux-xbit-ubuntu_y-z-Linux/sage /usr/local/bin/sage

Wobei sich 'x' auf die Bits Ihres Betriebssystems bezieht; 'y' bezieht sich auf die Ubuntu-Version, für die der Salbei entwickelt wurde (z. B. 10.04_lts; 12.04_lts (die _lts sind in 'y' erforderlich) usw.); 'z' bezieht sich auf die Architektur Ihres Betriebssystems. (i386, amd64 usw.)

Brenton Horne
quelle
2

Von allen aufgelisteten ist Octave am syntaktischsten kompatibel. Abgesehen von einigen der teuren Matlab-Toolboxen sollte Octave 98% (eine Nummer, die ich gerade erfunden habe) Ihres Codes ausführen. Ich benutze Matlab bei der Arbeit und Octave zu Hause.

Octave wird einige der eingebauten GUIs wie inputdlg usw. nicht (nativ) ausführen. Wenn Sie Qtoctave (eine IDE für Octave, sudo apt-get install qtoctave ) installieren, können Sie xmlwidget und einen Wrapper verwenden, um diese Funktionalität zu erhalten (ich kann Code bereitstellen, wenn du interessierst dich).

Bei der Leistung ist Octave nicht so schnell (google for benchmarks). Sie können jedoch alle modernen Versionen von Matlab unter Linux ausführen (sofern Sie über eine Lizenz verfügen) und diese sind jetzt standardmäßig auf der Installationsdiskette enthalten, und die Leistung der Linux-Version von Matlab ist unter Linux im Vergleich zu Linux genauso gut und häufig besser Windows.

Wenn Sie Leistung wünschen und keine freie Software verwenden möchten, schauen Sie sich am besten scipy an. Die Syntax ist jedoch weniger kompatibel. Sie müssen Ihren Code neu schreiben. Spyder ist eine Idee, die Python und Scipy verwendet, Scilab ist eine Mischung aus Oktave und Maxima und ein paar anderen. Ich bin mir nicht sicher über die Leistung von Freemat, aber ich denke nicht, dass es so entwickelt ist wie Octave.

Viel Glück.

Einige Benchmarks

Geschwindigkeit

http://www.osc.edu/research/cse/projects/octave_python.pdf

http://www.wseas.us/e-library/conferences/2010/Corfu/COMPUTERS/COMPUTERS2-56.pdf

Denken Sie daran, Benchmarks sind subjektiv. Es gibt viele Variablen. Der einzig wahre Weg, dies zu wissen, besteht darin, sie alle mit Ihrem Verarbeitungscode auf Ihrem Rig zu testen.

Ätzend
quelle
Wenn jemand googelt und gute Benchmarks für Octave vs. Matlab findet, können möglicherweise detailliertere Informationen oder Links zu dieser Antwort bearbeitet werden.
Eliah Kagan,
1

Nur zur Verdeutlichung: Warum wollen Sie eine Alternative für Matlab? Die Antwort von prasadkumar013 legt nahe, dass Sie Matlab unter Ubuntu nicht verwenden können, aber Sie können (zumindest starte ich es unter Ubuntu;)). Auf der Seite https://help.ubuntu.com/community/MATLAB befindet sich eine Community-Dokumentation .

Wenn Sie eine kostenlose Alternative zu Octave wünschen, funktioniert der Großteil des Matlab-Codes direkt in Octave. Versuchen Sie jedoch, im Terminal zu arbeiten, da die Benutzeroberfläche von qtoctave meiner Meinung nach nicht so benutzerfreundlich war.

Gerhard Burger
quelle
1

Am ähnlichsten MATLAB = Octave , (Link zu GUI)
Eine großartige, aufstrebende Hochleistungsrechensprache = Julia
Aber meine Lieblings- und IMHO-nützlichste Allround-Sprache, PYTHON (scipy, sage, cython ...)

Nagordon
quelle
0

http://pdl.perl.org/

PDL ("Perl Data Language") gibt Standard-Perl die Möglichkeit, die großen N-dimensionalen Daten-Arrays, die das Herzstück des wissenschaftlichen Rechnens sind, kompakt zu speichern und schnell zu bearbeiten.

Gianni
quelle
0

Haben Sie schon versucht, Sage ( www.sagemath.org )? Es ist ein Container für verschiedene Mathematikprogramme und kann symbolische und numerische Berechnungen durchführen. Letztere werden mit Numpy und Scipy durchgeführt. Es hat eine sehr aktive Community und ist ein Open-Source-Projekt, das in Python geschrieben ist.

Da Sie in den Leistungen interessiert sind, hier gibt es einige Benchmarks (am Ende der Seite auch Vergleiche mit Matlab).

Michele
quelle
0

Das ist schönes Papier.

Es wurden kurze Erklärungen und verschiedene Tests durchgeführt.

Übrigens benutze ich kein MATLAB oder ähnliches.

virpara
quelle
-1

Ich habe noch keinen wirklichen Vergleich gemacht, aber meiner Erfahrung nach ist eine reine Performance-Perspektive Oktave besser als MATLAB.

Sie sollten beachten, dass "es ist alles relativ" verschiedene Toolboxen unterschiedliche Leistungen haben.

Wenn Sie nur wenig RAM auf Ihrem Computer haben, funktioniert alles besser als MATLAB.

Ali
quelle
-2

Mein College verwendet MATLAB auf seinen Windows-PCs. Aber für die Verwendung von MATLAB unter Ubuntu hatte ich zwei Möglichkeiten

  1. Installieren Sie MATLAB über Wine oder einer anderen Virtualisierungssoftware
  2. Finden Sie einen Linux-Equivallent

Da die Virtualisierung meines Laptops sehr schwer ist, habe ich nach einer Alternative gesucht. Nach vielen Softwareversuchen habe ich mich endlich für OCTAVE entschieden. Es kann die meisten Standard-MATLAB-Codes ausführen. Anstelle von GNU Octave ist es besser, sich für qt Octave zu entscheiden. Während das erstere Terminal-basiert ist, ist das spätere GUI-basiert. Ich entscheide mich für qt Octave

sudo apt-get install qtoctave

prasadkumar013
quelle
4
Eine dritte Möglichkeit wäre die Installation der Linux-Version von Matlab .
Eliah Kagan,