https://www.rath.org/matlab-is-a-terrible-programming-language.htmlhttps://ajminich.com/2011/09/28/5-reasons-i-hate-matlab/
Ich schließe mich den in den Links genannten Punkten an. Meiner Meinung
nach ist Matlab/Octave von allen Sprachen die mit der schlechtesten
Syntax. Matlab hat eine etwas sehr komische diffuse Syntax, wenn man
sonst vor allem in C-ähnlichen Sprachen programmiert. Wahrscheinlich aus
Traditionsgründen und dem vielen bereits vorhandenen Code ist aber
Matlab wohl die verbreitetste Programmiersprache in der Forschung und
Industrie.
Als direkte Konkurrenzprodukte werden oft R, Python mit NumPy/SciPy,
Julia, Scilab und Octave genannt, wobei die OSS-Matlab-Klone wohl
hauptsächlich folgende sind: Octave und SciLab.
Ein Studienkollege hat damals (neben Matlab auf den Pool-Rechnern) auf
seiner eigenen Kiste SciLab benutzt und fand es recht gut...
Mich würde es freuen, wenn ihr eure eigenen Erfahrungen mit
Matlab-Alternativen ausführlich darlegen könntet. Danke.
Ich benutze jetzt Python und werde wohl meine Matlab Lizenz nicht
verlängern auf der Arbeit. Ich Arbeite hauptsächlich mit Jupyter Lab und
pyCharm sowohl unter Linux als auch unter Windows.
Vor allem mit grossen Datenmengen fühle ich mich bei Python besser
aufgehoben. R und Julia habe ich noch nicht getestet soll aber auch gut
Performant sein. Ich bin bisher Zufriedener damit als ich jemals mit
Matlab war.
Wenn es nur um die Grunfunktionalität von Matlab geht, wäre Octave eher
geeignet als Scilab.
Bei Scilab geht ja der "Ärger" schon bei Konstanten los. pi ist dort
nicht pi sondern %pi, weil alle eingebauten Konstanten mit % beginnen.
Wenn man jemand Anderem eine Formel mit pi zeigt, und pi kommt ja recht
häufig vor, dann muss man oft erklären, dass % nicht 1/100 bedeutet.
Das Hauptargument für Matlab sind die vielen umfangreichen Toolboxen.
Davon gibt es für Octave und Scilab weit weniger und wenn es eine
gleichen Namens gibt, dann enthält die nicht alle Funktionen. Allerdings
gehen die Toolboxen richtig ins Geld. Nicht jeder oder jede Firma kann
sich das leisten.
Hat schon mal jemand die Wolfram-engine/Mathematica auf dem Raspi
ausprobiert? Ich vermute, das ist nicht ganz vergleichbar mit den oben
genannten Programmen.
https://www.wolfram.com/raspberry-pi/
Als weitere "Alternative" gibts noch IDL. Aber ich rate gleich davon ab
auch nur nachzuschauen was das für eine Sprache ist, denn du kannst
Verfahrenstechniker schrieb:> Meiner Meinung> nach ist Matlab/Octave von allen Sprachen die mit der schlechtesten> Syntax. Matlab hat eine etwas sehr komische diffuse Syntax, wenn man> sonst vor allem in C-ähnlichen Sprachen programmiert.
nur sagen, weil du IDL nicht kennst ;-)
Ich habe bis jetzt meistens python mit numpy, matplotlib und Co.
benutzt, wenn ich nicht C++ benutzen kann/darf. Allerdings ist eine
Sprache, die keine 32 Bit Floats kennt problematisch, wenn man sie
braucht. Außerdem ist python (auch mit numpy) nicht besonders schnell,
aber das trifft wohl auf alle genannten Alternativen zu.
Helmut S. schrieb:> Wenn man jemand Anderem eine Formel mit pi zeigt, und pi kommt ja recht> häufig vor, dann muss man oft erklären, dass % nicht 1/100 bedeutet.
Sicher, dass du dann nur das % erklären musst? In welcher Welt kommt man
auf die Idee, dass %pi irgend etwas mit 1/100 zu tun hat?
Der große Vorteil von Octave ist dass es mehr oder weniger ein Drop-In
Replacement für Matlab ist. Einige Funktionen sind hier und da etwas
anders, aber im Großen und Ganzen ist die Kompatibilität recht
beachtlich. Das ist vor allem in Hinblick auf Mathworks riesign
"FileExchange" (sprich User-erstellte Sachen) sehr wichtig.
Wirklich vermissen tu ich eigentlich nix... man muss halt recht viele
optionale Packages mitnehmen. Ich hab aktuell etwa:
- symbolic
- control
- signal
- image
- splines und
- optim
mit installiert. Eine Vanilla-Octave Installation ist kaum mehr als ein
Taschenrechner.
Mit Scilab bin ich persönlich nie warm geworden und Python/Numpy/etc.
erzeugt (meiner Meinung nach!) für schnelle Gschichtln doch etwas
mehr... Rauschen.
/edit
Achja, eins noch. Großer Kritikpunkt. Die Performance ist (gefühlt)
wirklich katastrophal. Ich habs zwar nicht gemessen, würde aber ad-hoc
behaupten dass Octave generell langsamer als Matlab ist, egal wobei...
Verfahrenstechniker schrieb:> Mich würde es freuen, wenn ihr eure eigenen Erfahrungen mit> Matlab-Alternativen ausführlich darlegen könntet. Danke.
Wenn es nicht open source sein muss, nicht auf Linux laufen muss
und kein 1:1 Ersatz für Matlab sein muss, kommt evtl.
Igor Pro von Wavemetrics https://www.wavemetrics.com/ in Frage.
Die Dokumentation ist sehr gut, es gibt sehr viele Beispiele, es läuft
stabil und flott und die Preise sind moderat.
Die Programmierung ist an der C Syntax orientiert und was wirklich
erstaunlich gut funktioniert, ist das wechselweise arbeiten mit
Kommandozeile und mit GUI. Alle Ausführungen mit der GUI landen als
Befehl in der command history und können genau so gut direkt als Befehl
eingegeben oder in einem Skript verwendet werden.
Ursprünglich lag der Fokus auf der Analyse von Zeitreihen. Daher basiert
alles auf waves, d.h. Funktionswerte und diskrete abhängige Variable.
Konkret werden nur die Funktionswerte y1,y2,...,yn, x1 und delta-x oder
x1 und xn, angegeben. Durch Kombination zweier waves können aber auch
y1,y2,...,yn und x1,x2,...,xn verwendet werden. Waves können bis zu 4
Dimensionen haben. Symbolische Algebra ist, soweit ich weiß, nicht
möglich.
mh schrieb:> Außerdem ist python (auch mit numpy) nicht besonders schnell,
kann ich nicht bestätigen. Wie bei anderen Sprachen muss man verstehen,
was unter der Haube passiert. Das mag etwas gewöhnungsbedürftig sein,
wenn man vom C++ kommt.
Aber wer gut vektorisiert, ist mit numpy richtig schnell. Und was man
dabei lernt, hilft auch bei hardwarenaher programmierung (stichworte:
pipelines und SIMD)
Helmut S. schrieb:
> Wenn man jemand Anderem eine Formel mit pi zeigt, und pi kommt ja recht> häufig vor, dann muss man oft erklären, dass % nicht 1/100 bedeutet.
Sicher, dass du dann nur das % erklären musst? In welcher Welt kommt man
auf die Idee, dass %pi irgend etwas mit 1/100 zu tun hat?
Ich beantworte auch Fragen von Leuten die keine Ings sind. Mit dem
vorangestellten % bei eingebauten Konstanten hat das Scilab-Team eine
schlechte Entscheidung getroffen. Das schreckt jeden
Matlab/Octave-Anwender schon mal gleich ab, wenn nicht mal die
trivialsten Formeln mit copy/paste funktionieren.
Helmut S. schrieb:> Wenn es nur um die Grunfunktionalität von Matlab geht, wäre Octave eher> geeignet als Scilab.> Bei Scilab geht ja der "Ärger" schon bei Konstanten los. pi ist dort> nicht pi sondern %pi, weil alle eingebauten Konstanten mit % beginnen.> Wenn man jemand Anderem eine Formel mit pi zeigt, und pi kommt ja recht> häufig vor, dann muss man oft erklären, dass % nicht 1/100 bedeutet.
Naja, ok, aber nur wenn der Jemand absolut keine Ahnung von nichts hat.
Das "m" in F = m*a bedeutet ja auch nicht "Meter".
Sven B. schrieb:> Helmut S. schrieb:>> Wenn es nur um die Grunfunktionalität von Matlab geht, wäre Octave eher>> geeignet als Scilab.>> Bei Scilab geht ja der "Ärger" schon bei Konstanten los. pi ist dort>> nicht pi sondern %pi, weil alle eingebauten Konstanten mit % beginnen.>> Wenn man jemand Anderem eine Formel mit pi zeigt, und pi kommt ja recht>> häufig vor, dann muss man oft erklären, dass % nicht 1/100 bedeutet.>> Naja, ok, aber nur wenn der Jemand absolut keine Ahnung von nichts hat.> Das "m" in F = m*a bedeutet ja auch nicht "Meter".
Auf jeden Fall ärgert es mich, wenn ich da dauernd %pi statt pi
schreiben muss. Das war für mich einer der Gründe nach Octave zu
wechseln.
Verfahrenstechniker schrieb:> Mich würde es freuen, wenn ihr eure eigenen Erfahrungen mit> Matlab-Alternativen ausführlich darlegen könntet.
Octave ist interessant, aber Fakt ist, dass zwischen MATLAB und Octave
zum Teil Welten liegen. In einigen Punkten (bspw. objektorientierte
Programmierung, oder Performance des Skriptinterpreters) hinkt Octave um
5-10 Jahre hinterher. In vielen Bereichen ist MATLAB einfach state of
the art, das gilt bspw. fuer Optimierungsverfahren, ODE-Solver, lineare
Gleichungssysteme u.v.m.
In manchen Bereichen mag es auch andersherum sein. Aber bislang bin ich
immer zum Schluss gekommen, dass es keinen Sinn hat, mein Glueck mit
Octave zu versuchen, solange ich MATLAB zur Verfuegung habe. Aber je
nach Anwendung und Projekt-Randbedingungen (kommerziell, akademisch,
privat) kann das auch anders sein.
Ich verwende Octave schon lange und finde es super.
Manchmal ist es auch so, dass man in einer Firma keine Matlab-Lizenz
bekommt und dann ist es ziemlich praktisch.
Wir haben schon ganze Projekte mit Octave hoch gezogen. Es hängt immer
davon ab, welche Performance man braucht. Wenn man rechenintensive
Simulationen macht, ist Matlab sicher das richtige. Aber für einfache
Datenauswertungen reicht Octave völlig.
Immerhin legt man für die Matlab-Grundversion über 1000Euro hin. Dann
kommen noch mal die Lizensen für jede einzelne Toolbox und die sind noch
viel teurer.
Ja, matlab ist ziemlich teuer. Ist aber eh nicht mein Geld ;)
Das Konzept, aus jedem Pups eine neue Toolbox fuer 3000EUR zu machen,
find ich auch fragwuerdig.
Es gibt aber auch Software, die teurer und deutlich nutzloser ist (z.B.
DIAdem).
Christoph M. schrieb:> Dann kommen noch mal die Lizensen für jede einzelne Toolbox und die sind> noch viel teurer.vorticon schrieb:> Das Konzept, aus jedem Pups eine neue Toolbox fuer 3000EUR zu machen,> find ich auch fragwuerdig.
Der Wert von Matlab liegt gerade in den Toolboxen, deren Know-how und
die resultierende Zeitersparnis. Firmen die damit Geld verdienen sind
dann zähneknirschend bereit diese Preise zu zahlen.
mh schrieb:> Als weitere "Alternative" gibts noch IDL. Aber ich rate gleich> davon ab auch nur nachzuschauen was das für eine Sprache ist
Kann ich nur unterschreiben.
Was die Sprache betrifft sind MATLAB, IDL, Scilab alle Fossilien.
Wirklich Software entwickeln möchte man damit nicht. Glücklicherweise
gibt es immer weniger Gründe dafür (Toolboxen sind evtl. noch einer).
Wenn man keine Toolboxen braucht, dann ist Python in jeder Hinsicht
überlegen.
> Ich habe bis jetzt meistens python mit numpy, matplotlib und Co.> benutzt, wenn ich nicht C++ benutzen kann/darf. Allerdings ist eine> Sprache, die keine 32 Bit Floats kennt problematisch, wenn man sie> braucht.
Numpy unterstützt 32 Bit float.
Andreas S. schrieb:> Numpy unterstützt 32 Bit float
Ja, numpy unterstützt 32 Bit floats und hat sonderbare promotion Regeln,
weil python keine 32 Bit floats kennt. Warum ist
(numpy.float32(2)**2).dtype == numpy.float64
und
(numpy.arange(5, dtype=numpy.float32)**2).dtype == numpy.float32
vorticon schrieb:> In einigen Punkten (bspw. objektorientierte> Programmierung, oder Performance des Skriptinterpreters) hinkt Octave um> 5-10 Jahre hinterher.
Kein Wunder, dass Dein Beitrag abgewertet wurde. Mit Recht. In einem
Matlab-Bashing-Thread hat eine differenzierte Betrachtung nichts
verloren!