Porównanie Octave, Spyder, Freemat i Scilab jako alternatywy dla MATLAB


20

Próbuję znaleźć alternatywę dla MATLAB i do tej pory znalazłem:

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

Próbuję znaleźć najlepszą alternatywę dla MATLAB. Jestem szczególnie zainteresowany wydajnością i rzetelnością wyników.


1
Powinieneś również rozważyć R. To pytanie na StackOverflow ma prawdopodobnie najlepsze porównanie
Oli

Ipython brakuje
zetah

Odpowiedzi:


10

Cóż, czeka cię gratka. Użyłem wszystkich języków programowania / oprogramowania, o których wspominałeś. FreeMat i Spyder Nie mam zbyt dużego doświadczenia, ale mam trochę. Inne, w których mam doświadczenie.

GNU Octave zdecydowanie wyprzedza konkurencję. Jego składnia jest wyjątkowo zgodna z MATLAB . Jedyne różnice, jestem świadoma przynajmniej oprócz nieparzystej Toolbox, który można próbować zastąpić przez pakiety tutaj jest to, że GNU Octave może definiować funkcje z poziomu wiersza poleceń.

Nie wiem, czy znasz QtOctave . QtOctave to nakładka (GUI) dla języka programowania GNU Octave. QtOctave zawiera również edytor.

Scilab jest również odpowiednim zamiennikiem dla MATLAB. Ma pewne różnice pod względem składni, ale nic nie da się poradzić, jeśli przeszukujesz dołączoną do niego dokumentację.

FreeMat to najgorsze, moim zdaniem, oprogramowanie, którego składnia jest w dużej mierze oparta na MATLAB. Mój dowód na to składa się z trzech części: po pierwsze, w centrum oprogramowania otrzymuje najniższą ocenę gwiazdkową spośród czterech omawianych programów. Po drugie, nie jest często aktualizowana, najnowsza wersja w centrum oprogramowania została ostatnio zaktualizowana w 2008 r. Po trzecie, w wyniku mojego drugiego dowodu, jej funkcje są nieco opóźnione. Plusem jest jednak to, że jego składnia jest wysoce kompatybilna z MATLAB-em.

Użyłem Spydera , ale obawiam się tylko przez chwilę. Wydaje się najwyższej jakości. Problem polega na tym, że ma tylko ograniczoną kompatybilność z MATLAB, jeśli chodzi o składnię. Wymaga to nauki języka programowania Python, to znaczy, jeśli zamierzasz w nim dobrze sobie radzić.

Poleciłbym również SageMath, ponieważ zawiera GNU Octave, (jeśli jest już zainstalowany w systemie) Scilab, (jeśli już go masz) Numpy, [Numpy i pozostałe wymienione, o ile nie podano inaczej, pochodzą z Sage i dlatego nie jest wymagana instalacja ] Scipy, Matplotlib, maxima, fortran i wiele innych. SageMath można pobrać, przechodząc na stronę http://www.sagemath.org/download-linux.html i wybierając odpowiednie dublowanie, w zależności od tego, gdzie jesteś, a następnie instalując odpowiedni plik .tar.lzma. Po tym skopiuj i wklej następujące polecenia do terminala (ctrl + 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

Gdzie „x” odnosi się do bitów twojego systemu operacyjnego; „y” odnosi się do wersji Ubuntu, dla której mędrzec jest przeznaczony (np. 10.04_lts; 12.04_lts (_lts jest wymagany w „y”) itp.); „z” odnosi się do architektury twojego systemu operacyjnego. (i386, amd64 itp.)


2

Ze wszystkich wymienionych przez ciebie Octave jest najbardziej kompatybilny ze składnią. W rzeczywistości, oprócz niektórych drogich zestawów narzędzi Matlab, Octave powinien uruchamiać 98% (liczbę, którą właśnie wymyśliłem) twojego kodu. Używam Matlaba w pracy i Octave w domu.

Octave nie uruchomi (natywnie) niektórych wbudowanych GUI, takich jak inputdlg itp., Jeśli zainstalujesz Qtoctave (IDE dla Octave, sudo apt-get install qtoctave ), możesz użyć xmlwidget i wrappera, aby uzyskać tę funkcjonalność (mogę napisać kod, jeśli Jesteś zainteresowany).

Jeśli chodzi o wydajność, Octave nie jest tak szybki (Google dla testów porównawczych). Możesz jednak pobrać wszystkie nowoczesne wersje Matlaba działające w systemie Linux (jeśli masz licencję) i domyślnie są one teraz włączone na dysku instalacyjnym, a wydajność wersji Matlaba w systemie Linux jest równie dobra i często lepsza w systemie Linux w porównaniu do Windows

Jeśli chcesz wydajności i nie chcesz używać darmowego oprogramowania, najlepiej spojrzeć na scipy. Ale składnia jest mniej kompatybilna. Musisz przepisać kod. Spyder to ide, który wykorzystuje python i scipy, scilab to połączenie oktawy i maksimów oraz kilku innych. Nie jestem pewien co do wydajności freemat, ale nie sądzę, że jest tak rozwinięty jak Octave.

Powodzenia.

Kilka punktów odniesienia

prędkość

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

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

Pamiętaj, że testy porównawcze są subiektywne. Istnieje wiele zmiennych. Jedynym prawdziwym sposobem na sprawdzenie tego jest przetestowanie ich wszystkich na swoim urządzeniu przy użyciu kodu przetwarzania.


Jeśli ktoś wyszukuje w Google i znajduje dobre testy porównawcze dla Octave vs. Matlab, być może bardziej szczegółowe informacje lub linki mogą być edytowane w tej odpowiedzi.
Eliah Kagan,

1

Tylko dla wyjaśnienia: dlaczego szukasz alternatywy dla Matlaba? Odpowiedź prasadkumar013 sugeruje, że nie możesz używać Matlaba na Ubuntu, ale możesz (przynajmniej używam go na Ubuntu;)). Dokumentacja społeczności znajduje się na stronie https://help.ubuntu.com/community/MATLAB .

Jeśli chcesz darmową alternatywę dla oktawy, większość kodu matlab będzie działać bezpośrednio w oktawie. Spróbuj jednak pracować w terminalu, moim zdaniem GUI qtoctave nie było tak przyjazne dla użytkownika.


1

Najbardziej podobny do MATLAB = oktawa , (link do GUI)
Niesamowity rozwijający się język obliczeniowy na wysokim poziomie = Julia
Ale moja ulubiona i IMHO najbardziej użyteczna w całym języku, PYTHON (scipy, szałwia, cython ...)


0

http://pdl.perl.org/

PDL („Perl Data Language”) daje standardowemu Perlowi możliwość kompaktowego przechowywania i szybkiego manipulowania dużymi N-wymiarowymi tablicami danych, które są chlebem powszednim w naukowym przetwarzaniu.


0

Czy próbowałeś już Sage ( www.sagemath.org )? Jest pojemnikiem na różne oprogramowanie matematyczne i może wykonywać obliczenia symboliczne i numeryczne. Te ostatnie są wykonywane przy użyciu numpy i scipy. Ma bardzo aktywną społeczność i jest to projekt open source napisany w Pythonie.

Ponieważ jesteś zainteresowany występami, oto kilka testów porównawczych (na końcu strony również porównania z Matlabem).


0

To niezły papier.

Ma krótkie wyjaśnienie i przeprowadzone różne testy.

BTW Nie używam MATLAB ani nic takiego.


-1

Nie dokonałem prawdziwego porównania, ale z mojego doświadczenia wynika, że ​​czysto z perspektywy wydajności oktawa jest lepsza niż MATLAB.

Należy zauważyć, że „wszystko jest względne” różne zestawy narzędzi mają różne wyniki.

Jeśli masz ograniczoną pamięć RAM na swoim komputerze, powiedziałbym, że wszystko działałoby lepiej niż MATLAB.


-2

Moja uczelnia używa MATLAB na komputerach z systemem Windows. Ale za używanie MATLAB-a na Ubuntu pozostały mi dwie możliwości

  1. Zainstaluj MATLAB na Wine lub dowolnym oprogramowaniu do wirtualizacji
  2. Znajdź ekwiwalent systemu Linux

Ponieważ na moim laptopie wirtualizacja jest bardzo ciężka, szukałem alternatywy. Po wielu próbach oprogramowania w końcu zdecydowałem się na OCTAVE. Może obsługiwać większość standardowych kodów MATLAB. Zamiast GNU Octave lepiej wybrać qt Octave. Podczas gdy ten pierwszy jest oparty na terminalu, drugi jest oparty na GUI. Mój wybór to pójść na qt Octave

sudo apt-get install qtoctave


4
Trzecim wyborem byłaby instalacja Matlaba w Linuksie .
Eliah Kagan,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.