Kostenlose Alternativen zu Matlab, die unter Linux laufen?

Ich habe mich kürzlich den Leuten angeschlossen, die Linux verwenden. Aus diesem Grund versuche ich, so viele proprietäre Anwendungen wie möglich durch kostenlose – und wenn möglich Open Source – Alternativen zu ersetzen.

Da ich ein anständiges Tool für meine mathematischen Experimente brauche und MATLAB R2013b auf meiner früheren Windows-Installation verwendet habe, bin ich gespannt auf kostenlose – vorzugsweise Open-Source – Alternativen zu Matlab, die unter Linux (Ubuntu) laufen.

Gibt es kostenlose Alternativen zu Matlab, die unter Linux laufen? Was mir am wichtigsten ist, ist, dass die Alternative zu Matlab in Bezug auf die Syntaxkompatibilität eng zusammenpasst … damit die meisten Programme problemlos portiert (oder – wenn möglich – importiert) werden können. Außerdem bin ich mir ziemlich sicher, dass keine Alternative über den vollständigen Funktionsumfang von Matlab verfügen wird, daher wäre es für mich auch wichtig zu wissen, welche Unterschiede in der Funktionalität ich erwarten muss, wenn ich die von Ihnen vorgeschlagene(n) Alternative(n) verwende. Bedeutung: Gibt es etwas, was die kostenlose(n) Alternative(n) können, was MATLAB R2013b nicht kann, und umgekehrt?

Es gibt keinen funktionsvollständigen Mathlab-Ersatz. Erwarten Sie also fehlende Funktionen und eine schlechtere Leistung. Und weniger Bibliotheken.
Matlab hat viele Funktionen. Welche Funktionen nutzen Sie? Haben Sie Scilab ausprobiert, das eine kostenlose Alternative zu Matlab sein möchte?
Diese Frage sollte nicht erneut gestellt werden, da die Anforderungen noch viel zu vage sind.
@e-sushi Wenn Sie bereit sind, für Matlab unter Windows zu bezahlen, warum verwenden Sie es dann nicht auch unter Linux?
@Bernhard Um Ihre Frage zu beantworten , zitiere ich den Teil meiner Frage, den Sie anscheinend übersehen haben: „… versuchen, so viele proprietäre Anwendungen wie möglich durch kostenlose – und wenn möglich Open-Source – Alternativen zu ersetzen …“ Ich denke, das sagt deutlich aus, dass ich nicht bereit bin, für Matlab (mehr) zu bezahlen.
@e-sushi Es macht keinen Sinn, dass es Open-Source-Anwendungen gibt, die proprietäre Anwendungen ersetzen. Sie sollten eine Liste mit Spezifikationen für das, was Sie wollen, beifügen.
@Bernhard: "so viele wie möglich" scheint eine sehr klare Anforderung zu sein. Gibt es wirklich so viele Matlab-Alternativen für Linux, die die meisten seiner Funktionen abdecken, dass es schwierig ist, eine oder zwei mit der größten Kompatibilität auszuwählen? Können Sie zehn solcher Programme nennen?
@SF. Versuchen Sie mich davon zu überzeugen, dass er alle Funktionen nutzt? Es ergibt keinen Sinn. Er könnte nur einige Datentransformationen und Plots durchführen. In diesem Fall könnte ein Konverter von Matlab- in Python-Code eine gültige Antwort sein. Möglichst viele machen keinen Sinn, wenn er nur wenige davon nutzt.
@Bernhard Ein kleiner, freundlicher Hinweis aus unserem Hilfebereich: Wann sollte ich nicht kommentieren?Sekundäre Diskussion oder Debatte über einen kontroversen Punkt; bitte verwenden Sie stattdessen den Chat ; …“
@e-sushi Du wählst die falschen Teile meiner Kommentare aus. Ich frage ausdrücklich dreimal, um zu klären, wonach Sie genau suchen: meta.softwarerecs.stackexchange.com/questions/1/…
@Bernhard: Wenn Sie es noch nicht bemerkt haben, diese Frage hat bereits eine genehmigte Antwort. Etwas, das den Fragesteller befriedigte. Wenn man davon ausgeht, dass jemand nach den gegebenen Richtlinien eine zufriedenstellende Antwort geben konnte, ist dies ein sachlicher Beweis dafür, dass die Frage klar genug war und keiner weiteren Klärung bedarf. Glaubst du, du kannst besser als Olli eine Lösung geben, wenn e-sushi deine Fragen beantwortet? Die allgemeine Kompatibilität über das gesamte Paket hinweg ist ein ebenso gültiges Maß für die Wünschbarkeit eines Pakets wie jedes andere, unabhängig davon, was Sie denken.
@SF. Diese Seite befindet sich in der privaten Beta-Phase. Ziel ist es, eine gute Beispielfrage zu formulieren. Das ist an sich eine schlechte Frage. Dass es eine akzeptierte Antwort gibt, ist völlig irrelevant.
@Bernhard: Das ist deine Meinung. Meiner Meinung nach ist diese Frage ziemlich gut, und "am ähnlichsten zu gegeben" ist eine vollkommen klare und sehr akzeptable Richtlinie. Ich verstehe deinen Hass wirklich nicht. (und ob er alle Funktionen nutzt oder nicht, ist strittig. Zum Beispiel bin ich Schriftsteller. Ich neige dazu, Fragen zu Dingen zu stellen, die ich nie benutze oder zu verwenden beabsichtige – Charaktere in meinen Geschichten tun dies. Wenn ich Markenprobleme vermeiden wollte mein Buch und meine Figur immer noch eine echte nicht-abstrakte Software ähnlich Matlab verwendet und unter Linux läuft, würde ich die gleiche Frage stellen.)

Antworten (5)

Es gibt keinen einzigen Ersatz für Matlab in Linux. Matlab ist ein wirklich riesiges Softwarepaket, einschließlich eines ziemlich großen Bibliotheksökosystems.

Octave ist eine kostenlose Alternative für Matlab. Es fehlen einige Funktionen, aber alle Grundlagen sind vorhanden. Ich habe beide verwendet, aber es ist ziemlich schwierig, eine gute Bewertung basierend auf meinen eigenen Gefühlen abzugeben. Diese Seite listet einige kleinere Unterschiede auf, aber hauptsächlich Fälle, in denen Octave besser ist als Matlab. Das wahrscheinlich größte Problem ist, dass sich einige Funktionen anders verhalten, zum Beispiel das Produkt von booleschen Werten und das Laden leerer Dateien . Dies ist wichtig, da es das Portieren Ihrer eigenen Skripte erschwert, da unerwartete Dinge passieren.

Meine eigenen Gefühle sind das

  • Matlab ist viel ausgereifter als Octave (sollte keine Überraschung sein)
  • Matlab ist schneller (ich habe keine empirischen Daten dazu, es ist nur ein Gefühl)
  • Matlab UI ist bemerkenswert besser
  • Bibliotheksunterstützung und verfügbarer Beispielcode im Internet für Matlab sind von höherer Qualität als für Octave.

Abgesehen davon ist Octave kostenlos und Matlab kostet viel mehr, als sich ein durchschnittlicher Verbraucher leisten kann.


Sagemath ist eine weitere Alternative, aber in der Funktionalität näher an Mathematica.

Weitere Do-it-yourself-Lösungen finden Sie in R, Scilab und Python. Mit diesen erhalten Sie kein integriertes All-in-One-Paket, und die Lernkurve ist ziemlich steil.

-1: Ich glaube, die Richtlinien für SR lauten „ein Produkt pro Antwort“. Ansonsten spiegeln die Stimmen nicht den Glauben an einzelne Produkte wider, worum es hier eigentlich geht. Ich werde eine +1-Stimme auf eine reine Octave-Antwort anwenden, habe aber keine Meinung zu SageMath.
@IraBaxter Kannst du mich auf diese Richtlinie verweisen?
@IraBaxter Das wird diskutiert, aber es gibt noch keinen Konsens.

Oktave

wie Olli sagte, Ocatave ist eine Matlab-Alternative:

Bemerkenswerte Funktionen (gemeinsam mit Matlab):

  • Syntax nahezu identisch. es wird fast alle m-Dateien ohne Änderungen verbrauchen. Das mfile ist auch das Standardformat. Die Syntax ist so identisch, dass der Matlab-Kurs meiner Universität Oktave im Autograder verwendet, obwohl die Einheit vollständig in Matlab unterrichtet wird und Oktave nur einmal am Rande erwähnt.

  • Hochwertige BLAS - Bibliotheksintegration (normalerweise glaube ich, dass sie in OpenBlas integriert ist, aber dies kann von Ihrem System abhängen, es kann Atlas sein). Aufgrund des BLAS ist es wie bei Matlab viel effizienter, Vektortechniken zu verwenden (anstatt für Schleifen) - also ist guter Matlab-Code immer noch guter Oktavcode .

  • Automatisches Multithreading für Leistung: Wenn Sie einen komplexen Code in Octave oder Matlab schreiben und ein Tool öffnen, um Ihre CPU-Auslastung zu sehen, werden alle Ihre Kerne geladen. Diese Parallelisierung bedeutet, dass die Dinge schneller laufen sollten.
  • 3D-Diagramme mit Mausinteraktion: Wenn Sie ein 3D-Diagramm erstellen, unterstützt das sich öffnende Fenster die Mausinteraktion zum Zoomen, Schwenken und Drehen.

Es gibt auch ein paar zusätzliche Funktionen , aber ich fand sie nie bemerkenswert genug, um mich an sie zu erinnern.

Bemerkenswerte Funktionen fehlen:

  • Bibliotheken : Es gibt kein Simulink und verschiedene andere Bibliotheken wie die Signal Processing Toolbox existieren nicht. Aber es gibt einige Alternativen wie das Signalpaket
  • GUI Workspace : Die Octave-Arbeitsumgebung ist eine Kommandozeilen-Shell. Es ist funktional und verwendet so etwas wie GNU readline . Wenn Sie ein Diagramm zeichnen, das in einem neuen Fenster mit vollständigen Grafiken geöffnet wird. (der Grafik). Aber es gibt keinen Plot-Editor, keinen Datei-Exporer an der Seite, keinen Variablen-Explorer usw. Nur eine Shell.
Korrektur: Ich habe kürzlich Octave 4.2.1 Building aus dem Quellcode installiert. Wenn Sie über die richtigen Abhängigkeiten verfügen, wird Octave mit einer übersichtlichen GUI geliefert. Octave ist also nicht nur ein Shell-Programm.

Ich würde Scilab empfehlen, da ich es verwendet habe und fand, dass es eine anständige Open-Source-Alternative für MATLAB ist. Es hat nicht die Robustheit und den Glanz eines professionellen Pakets, aber da es auf der MATLAB-Sprache basiert, kann das, was Sie lernen, später übertragen werden, wenn sich Ihre Anforderungen ändern oder Sie in einer Umgebung arbeiten, in der MATLAB das ist Ursprünglich.

Zitat von Richie Cotton bei Stack Overflow :

Scilab verhält sich zu MATLAB wie OpenOffice zu MS Office. Das heißt, es ist kein ganzer Klon und nicht so ausgefeilt. Sie erhalten die meisten Funktionen von MATLAB, und der Preis ist viel angenehmer.

[+1] Gibt es irgendetwas, das Sie zur Syntaxkompatibilität zu Matlab hinzufügen können (um zu wissen, ob es einfach ist, vorhandenes Material nach Scilab zu portieren)?
Scilab verfügt über einen integrierten M-File-Übersetzer, der es einfach macht, Ihren Code nach MATLAB zu portieren. Außerdem ist es plattformübergreifend, dh es funktioniert mit Windows/Linux/MacOS. Nun, da ich nur SCILAB verwendet habe, kann ich seine Vor- und Nachteile gegenüber anderen nicht sagen, aber ja, ich fand es ziemlich gut.
Beachten Sie auch, dass es Scilab schon eine Weile gibt und dass es von der französischen Regierung gesponsert wird.

Schau mal bei Julia vorbei : http://julialang.org/

Julia ist für numerische wissenschaftliche Arbeiten konzipiert, einschließlich interaktiver Arbeiten. Es verfügt über eine hochwertige Notebook-Schnittstelle wie Mathematica und Sage. Es hat die beste Leistung seiner Klasse, sehen Sie sich die Benchmarks auf der Titelseite an. Es kann Python aufrufen, wodurch viele nützliche Bibliotheken dafür geöffnet werden.

Julia wurde speziell entwickelt, um MATLAB-Benutzern den Übergang zu erleichtern. Die grundlegende Syntax ist ähnlich. Seine Programmiersprache ist jedoch moderner und fortschrittlicher als die von MATLAB (z. B. unterstützt sie Metaprogrammierung ).

Julia ist ein relativ neues System, daher ist es nicht so vollständig wie andere (R, Octave), aber es hat eine wachsende Community und ist vielversprechend.

(wie Sie sagen) Ein bemerkenswertes Merkmal von Julia, das im Vergleich zu sagen wir numpy besonders gut ist, ist, dass die Syntax für numerische Operationen fast identisch mit Matlabs ist. Soweit es bei der Portierung numerischer Algorithmen möglich ist, die Ausnahmen zu kopieren und einzufügen und dann zu beheben.

Wenn Sie keine exakte Kompatibilität mit Matlab benötigen, ist Freemat eine Option.

Geben Sie hier die Bildbeschreibung ein

http://freemat.sourceforge.net/

Es kann ziemlich schnell sein, da es LLVM als JIT-Compiler verwendet.

http://freemat-blog.blogspot.com/2008/02/why-jit-how-to-jit.html

Freemat hat schon länger eine integrierte GUI als Octave, obwohl die GUI von Octave besser geworden ist.

Der Hauptnachteil ist, dass es nicht so aktiv entwickelt wird wie Octave; die letzte Veröffentlichung war im Jahr 2013.

https://www.openhub.net/p/_compare?project_0=FreeMat&project_1=GNU+Octave

Ich habe Freemat 2010 bei einem Startup-Unternehmen verwendet, es hat unsere Anforderungen erfüllt.