Pytanie:
Darmowe alternatywy dla Matlaba działające w systemie Linux?
e-sushi
2014-02-05 07:29:03 UTC
view on stackexchange narkive permalink

Niedawno dołączyłem do ludzi używających Linuksa. W rezultacie staram się zastąpić jak najwięcej użytecznych aplikacji darmowymi - i jeśli to możliwe open-source - alternatywami.

Ponieważ potrzebuję przyzwoitego narzędzia do eksperymentów matematycznych i Kiedyś używałem MATLAB R2013b na mojej poprzedniej instalacji Windowsa, chętnie poznam darmowe - najlepiej open-source - alternatywy dla Matlaba, które będą działać na Linuksie (Ubuntu).

Czy są jakieś darmowe alternatywy do Matlaba działającego w systemie Linux? Najważniejsze dla mnie jest to, że alternatywa dla Matlaba powinna być ściśle dopasowana, jeśli chodzi o kompatybilność składni… tak, aby większość programów można było łatwo przenieść (lub - jeśli to możliwe - zaimportować). Jestem też prawie pewien, że żadna alternatywa nie będzie miała pełnego zestawu funkcjonalności zapewnianego przez Matlab, więc byłoby dla mnie również ważne, aby wiedzieć, jakich różnic w funkcjonalności mogę się spodziewać podczas korzystania z sugerowanych przez Ciebie alternatyw. Znaczenie: czy jest coś, czego wolne alternatywy mogą zrobić, czego MATLAB R2013b nie może zrobić i odwrotnie?

Nie ma pełnych funkcji zamienników Mathlab. Spodziewaj się więc brakujących funkcji i gorszej wydajności. I mniej bibliotek.
Matlab ma wiele funkcji. Z jakich funkcji korzystasz? Czy wypróbowałeś Scilab, który stara się być bezpłatną alternatywą dla Matlab?
Nie należy ponownie otwierać tego pytania, ponieważ wymagania są nadal niejasne.
@e-sushi Jeśli chcesz zapłacić za Matlab w systemie Windows, dlaczego nie użyć go również w systemie Linux?
@Bernhard Aby odpowiedzieć na [Twoje pytanie] (http://softwarerecs.stackexchange.com/questions/194/free-alternatives-to-matlab-that-run-on-linux?noredirect=1#comment954_194), zacytuję część mojego pytania, którą chyba przeoczyłeś: * „… próbuję zastąpić jak najwięcej poprawnych aplikacji na ** darmowych - i jeśli to możliwe - open-source - alternatywnych **…” * Myślę, że jasno stwierdza, że nie chcę płacić za Matlab (już).
@e-sushi Nie ma sensu, aby istniały aplikacje typu open source, które zastępują aplikacje zastrzeżone. Powinieneś dołączyć listę specyfikacji tego, co chcesz.
@Bernhard: „jak najwięcej” wydaje się bardzo jasnym wymogiem. Czy naprawdę jest tak wiele alternatyw Matlab dla Linuksa, które obejmują większość jego funkcji, że wybór jednej lub dwóch z najbliższą kompatybilnością jest trudny? Czy możesz wymienić dziesięć takich programów?
@SF. Próbujesz mnie przekonać, że używa wszystkich funkcji? To nie ma sensu. Mógł wykonywać tylko niektóre transformacje danych i kreślenia. W takim przypadku poprawną odpowiedzią może być konwerter z kodu Matlab do kodu Python. Jak najwięcej nie ma sensu, jeśli używa tylko kilku z nich.
@Bernhard Mała, przyjazna informacja z naszej sekcji pomocy: * „[Kiedy nie powinienem komentować?] (Http://softwarerecs.stackexchange.com/help/privileges/comment)… ** Druga dyskusja ** lub debata kontrowersyjny punkt; zamiast tego użyj [chat] (http://chat.stackexchange.com/);… ”*
@e-sushi Wybierasz niewłaściwe części moich komentarzy. Wyraźnie proszę trzy razy o wyjaśnienie, czego dokładnie szukasz: http://meta.softwarerecs.stackexchange.com/questions/1/is-it-okay-to-ask-for-alternatives
@Bernhard: Jeśli do tej pory nie zauważyłeś, to pytanie ma już zatwierdzoną odpowiedź. Coś, co zadowoliło pytającego. Rozważenie, czy ktoś, korzystając z podanych wskazówek, był w stanie udzielić satysfakcjonującej odpowiedzi, jest faktycznym dowodem, że pytanie było wystarczająco jasne i nie wymaga dalszych wyjaśnień. Czy uważasz, że możesz dać rozwiązanie lepsze niż Olli, jeśli e-sushi odpowie na Twoje pytania? Ogólna kompatybilność w całym pakiecie jest tak samo ważną miarą pożądalności pakietu, jak każdego innego, niezależnie od tego, co myślisz.
@SF. Ta strona jest w prywatnej wersji beta. Celem jest sformułowanie dobrego przykładowego pytania. To jest złe pytanie jako takie. To, że istnieje akceptowana odpowiedź, jest całkowicie nieistotne.
@Bernhard: To jest Twoja opinia. Moim zdaniem to pytanie jest całkiem dobre, a określenie „najbardziej podobne do danego” jest bardzo jasną i bardzo akceptowalną wskazówką. Naprawdę nie rozumiem twojej nienawiści. (i to, czy używa wszystkich funkcji, czy nie, jest dyskusyjne. Na przykład jestem pisarzem. Zwykle zadaję pytania o rzeczy, których nigdy nie używam ani nie zamierzam używać - robią to postacie w moich opowiadaniach. Gdybym miał uniknąć problemów ze znakami towarowymi moja książka i nadal moja postać używa prawdziwego nieabstrakcyjnego oprogramowania podobnego do Matlab i działającego na Linuksie, zadałbym to samo pytanie.)
Pięć odpowiedzi:
#1
+19
Olli
2014-02-05 07:40:10 UTC
view on stackexchange narkive permalink

Nie ma jednego zamiennika Matlaba w systemie Linux. Matlab to naprawdę ogromny pakiet oprogramowania, zawierający dość duży ekosystem bibliotek.

Octave to jedna bezpłatna alternatywa dla Matlaba. Brakuje kilku funkcji, ale są tam wszystkie podstawy. Użyłem obu, ale raczej trudno jest dobrze ocenić na podstawie własnych odczuć. Ta strona zawiera kilka drobnych różnic, ale głównie przypadki, w których Octave jest lepszy niż Matlab. Prawdopodobnie największym problemem jest to, że niektóre funkcje działają inaczej, na przykład produkt wartości logicznych i ładowanie pustych plików. Jest to ważne, ponieważ utrudnia przenoszenie własnych skryptów, ponieważ zdarzają się nieoczekiwane rzeczy.

Moje własne odczucia są takie, że

  • Matlab jest dużo bardziej dojrzały niż Octave (nie powinno być zaskoczeniem)
  • Matlab jest szybszy (nie nie mam danych empirycznych na ten temat, to tylko przeczucie)
  • Interfejs użytkownika Matlaba jest znacznie lepszy
  • Obsługa bibliotek i dostępny przykładowy kod w Internecie dla Matlaba jest lepszej jakości niż dla Octave.

Biorąc to pod uwagę, Octave jest bezpłatna, a Matlab kosztuje znacznie więcej, niż może zapłacić przeciętny konsument.


Sagemath to kolejna alternatywa, ale funkcjonalność bliższa Mathematica.

Aby uzyskać więcej rozwiązań do samodzielnego wykonania, przyjrzyj się R, Scilab i Python. Nie uzyskasz z nimi zintegrowanego, kompleksowego pakietu, a krzywa uczenia się jest dość stroma.

-1: Uważam, że wytyczne dotyczące SR to „jeden produkt na odpowiedź”. W przeciwnym razie głosy nie odzwierciedlają wiary w poszczególne produkty, o co tutaj chodzi. Przyznam głos +1 do czystej odpowiedzi Octave, ale nie mam zdania na temat SageMath.
@IraBaxter Czy możesz wskazać mi te wytyczne?
@IraBaxter To jest omawiane, ale nie ma jeszcze konsensusu.
@TimPost Dzięki za ostrzeżenie.
#2
+16
Lyndon White
2014-02-06 20:42:13 UTC
view on stackexchange narkive permalink

Octave

jak powiedział Olli, Ocatave to alternatywa dla Matlab:

Godne uwagi funkcje (udostępniane matlabowi):

  • Składnia prawie identyczna. zużyje prawie wszystkie m-pliki bez zmian. plik m jest również jego formatem domyślnym. Składnia jest tak identyczna, że ​​na moim uniwersytecie w programie Matlab w autograderze używana jest oktawa, mimo że jednostka jest nauczana w całości w języku Matlab i wspomina o oktawie tylko raz na marginesie.

  • Wysokiej jakości integracja biblioteki BLAS (normalnie wierzę, że jest ona zintegrowana z OpenBlas, ale może to zależeć od twojego systemu, może to być Atlas). Ze względu na BLAS, podobnie jak matlab, jest on znacznie bardziej wydajny w użyciu technik wektorowych (niż w przypadku pętli) - więc dobry kod Matlaba jest nadal dobrym kodem oktawowym .

  • Automatyczna wielowątkowość zwiększająca wydajność: jeśli napiszesz skomplikowany kod w oktawie lub w programie Matlab i otworzysz narzędzie do sprawdzania obciążenia procesora, załaduje ono wszystkie rdzenie. Ta parrelizacja oznacza, że ​​rzeczy powinny działać szybciej.
  • Wykresy 3D z użyciem myszy: Jeśli utworzysz wykres 3D, okno, które zostanie otwarte, obsługuje interakcję myszy w celu powiększania, przesuwania i obracania.

Jest też kilka dodanych funkcji , ale nigdy nie znalazłem ich na tyle godnych uwagi, aby je zapamiętać.

Istotne brakujące funkcje:

  • Biblioteki : nie ma simulink, a różne inne biblioteki, takie jak Zestaw narzędzi przetwarzania sygnałów, nie istnieją. Ale jest kilka alternatyw, takich jak pakiet signal.
  • Obszar roboczy GUI : środowisko pracy oktawy to powłoka wiersza poleceń. Jest funkcjonalny i używa czegoś w rodzaju readline GNU. Podczas kreślenia wykresu, który otwiera się w nowym oknie z pełną grafiką. (wykresu). Ale nie ma edytora wykresów, żadnego eksporera plików z boku, żadnego eksploratora zmiennych itp. Tylko powłoka.
Poprawka: Niedawno zainstalowałem kompilację Octave 4.2.1 ze źródła. Jeśli masz odpowiednie zależności, Octave ma zgrabny GUI. ** Więc Octave to nie tylko program powłoki. **
#3
+9
Ranveer
2014-02-05 17:07:32 UTC
view on stackexchange narkive permalink

Poleciłbym Scilab, ponieważ używałem go i stwierdziłem, że jest to przyzwoita alternatywa open source dla MATLAB-a. Nie ma solidności i polerowania profesjonalnego pakietu, ale ponieważ jest oparty na języku MATLAB, to, czego się nauczysz, może zostać przeniesione później, jeśli Twoje potrzeby się zmienią lub pracujesz w środowisku, w którym MATLAB jest

Cytując Richie Cotton w Stack Overflow:

Scilab jest dla MATLAB-a tak jak OpenOffice dla MS Office . Oznacza to, że jest to niezupełnie-klon i nie jest tak dopracowany. Dostajesz większość funkcjonalności MATLAB-a, a cena jest o wiele korzystniejsza.

[+1] Coś, co możesz dodać o kompatybilności składni do Matlaba (aby wiedzieć, czy łatwo jest przenieść istniejące rzeczy do Scilaba)?
Scilab ma wbudowany translator plików m, który ułatwia przenoszenie kodu do MATLAB. Do tego jest wieloplatformowy, czyli działa z Windows / Linux / MacOS. Cóż, ponieważ używałem tylko SCILAB-a, nie będę w stanie określić jego zalet / wad w porównaniu z innymi, ale tak, okazało się, że jest całkiem niezły.
Należy również zauważyć, że Scilab istnieje już od jakiegoś czasu i jest sponsorowany przez rząd francuski.
#4
+7
Szabolcs
2014-07-01 22:41:32 UTC
view on stackexchange narkive permalink

Spójrz na Julia : http://julialang.org/

Julia jest przeznaczona do numerycznych prac naukowych, w tym interaktywnych. Posiada dobrej jakości interfejs notebooka, taki jak Mathematica i Sage. Ma najlepszą w swojej klasie wydajność, sprawdź testy porównawcze na pierwszej stronie. Może wywoływać Pythona, co otwiera wiele przydatnych dla niego bibliotek.

Julia została specjalnie zaprojektowana, aby ułatwić użytkownikom MATLAB przejście. Podstawowa składnia jest podobna. Jednak jego język programowania jest bardziej nowoczesny i zaawansowany niż MATLAB (np. Obsługuje metaprogramowanie).

Julia jest stosunkowo nowym systemem, więc nie jest tak kompletna jak inne (R , Octave), ale ma rosnącą społeczność i jest obiecująca.

(jak mówisz) Godną uwagi cechą Julii, która jest szczególnie dobra w porównaniu z powiedzmy numpy, jest to, że składnia operacji numerycznych jest prawie identyczna jak w Matlabs. O ile podczas przenoszenia algorytmów numerycznych kopiowanie i wklejanie, a następnie naprawianie wyjątków jest wykonalne.
#5
+5
Nathaniel M. Beaver
2015-10-14 22:38:11 UTC
view on stackexchange narkive permalink

Jeśli nie potrzebujesz dokładnej zgodności z Matlab, opcją jest Freemat.

enter image description here

http: // freemat.sourceforge.net/

Może być dość szybki, ponieważ używa LLVM jako kompilatora JIT.

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

Freemat ma zintegrowany GUI dłużej niż Octave, chociaż GUI Octave jest coraz lepsze.

Główną wadą jest to, że nie jest tak aktywnie rozwijany jak Octave; ostatnie wydanie było w 2013 roku.

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

Użyłem Freemata w 2010 roku w startupie, spełnił nasze potrzeby.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...