Сравнение Octave, Spyder, Freemat и Scilab как альтернативы MATLAB

20

Я пытаюсь найти альтернативу для MATLAB и до сих пор нашел:

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

Я пытаюсь найти лучшую альтернативу MATLAB. Я особенно обеспокоен производительностью и целостностью результатов.

user33831
источник
1
Вы должны также рассмотреть R. Этот вопрос о StackOverflow, вероятно, имеет лучшее сравнение
Оли
IPython отсутствует
Зета

Ответы:

10

Ну что ж, вас ждет удовольствие. Я использовал все языки программирования / программы, которые вы упомянули. FreeMat и Spyder У меня не слишком много опыта, но у меня есть немного. Другие, в которых я нахожусь.

GNU Octave безусловно побеждает конкурентов. Его синтаксис чрезвычайно совместим с синтаксисом MATLAB . Единственные отличия, о которых я знаю, по крайней мере, помимо нечетного набора инструментов, который вы можете попытаться заменить пакетами здесь , заключаются в том, что GNU Octave может определять функции из командной строки.

Я не знаю, знаете ли вы о QtOctave . QtOctave - это интерфейс (GUI) для языка программирования GNU Octave. QtOctave также поставляется с редактором.

Scilab - адекватная замена и для MATLAB. У него есть некоторые различия с точки зрения синтаксиса, но вы ничего не получите, если будете искать документацию, которая идет с ним.

FreeMat - худшее, по моему мнению, по крайней мере, программное обеспечение, синтаксис которого в значительной степени основан на MATLAB. Мои доказательства этого состоят из трех частей: во-первых, в центре программного обеспечения он получает самый низкий рейтинг звезд из четырех рассматриваемых программ. Во-вторых, это не часто обновляется, последняя версия в центре программного обеспечения, последний раз обновлялась в 2008 году. В-третьих, в результате моего второго доказательства, его функции несколько отстают. Плюсом, однако, является то, что его синтаксис очень совместим с MATLAB.

Я использовал Spyder , но боюсь ненадолго. Вроде качественно. Проблема в том, что он имеет ограниченную совместимость с MATLAB, с точки зрения синтаксиса. Это требует от вас изучения некоторого языка программирования Python, то есть, если вы планируете преуспеть в этом.

Я бы также порекомендовал SageMath, так как он включает в себя GNU Octave, (если он уже установлен в вашей системе) Scilab, (если он у вас уже установлен) Numpy, [Numpy и остальные, упомянутые, если не указано иное, поставляются с Sage и, следовательно, установка не требуется ] Сципи, Матплотлиб, Максима, Фортран и многие другие. SageMath можно загрузить, перейдя на веб-сайт http://www.sagemath.org/download-linux.html и выбрав подходящее зеркало в зависимости от того, где вы находитесь, а затем установив соответствующий файл .tar.lzma. После этого скопируйте и вставьте в терминал следующие команды (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

Где «х» относится к битам вашей ОС; 'y' относится к версии Ubuntu, для которой предназначен sage (например, 10.04_lts; 12.04_lts (_lts требуется в 'y') и т. д.); «z» относится к архитектуре вашей ОС. (i386, amd64 и т. д.)

Брентон Хорн
источник
2

Octave является наиболее совместимым синтаксисом из всех перечисленных вами. Фактически, кроме некоторых из дорогих наборов инструментов Matlab, Octave должен выполнять 98% (число, которое я только что составил) вашего кода. Я использую Matlab на работе и Octave дома.

Octave не будет запускать (изначально) некоторые встроенные графические интерфейсы, такие как inputdlg и т. Д. Если вы устанавливаете Qtoctave (IDE для Octave, sudo apt-get install qtoctave ), вы можете использовать xmlwidget и оболочку для получения этой функциональности (я могу опубликовать код, если вы заинтересованы).

Что касается производительности, то Octave не такой быстрый (Google для тестов). Тем не менее, вы можете получить все современные версии Matlab, работающие в Linux (если у вас есть лицензия), и теперь они включены в установочный диск по умолчанию, а производительность Linux-версии Matlab такая же хорошая и часто лучше в Linux по сравнению с Окна.

Если вам нужна производительность, и вы не хотите использовать бесплатное программное обеспечение, лучше всего взглянуть на scipy. Но синтаксис менее совместим. Вам нужно будет переписать свой код. Spyder - это иде, который использует python и scipy, scilab - это смесь октав, максимумов и некоторых других. Не уверен насчет производительности freemat, но я не думаю, что он так же развит, как Octave.

Удачи.

Несколько тестов

скорость

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

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

Помните, что тесты являются субъективными. Есть много переменных. Единственный верный способ узнать это - протестировать их все на своей установке, используя код обработки.

каустика
источник
Если кто-то запустит Google и найдет хорошие тесты для Octave vs. Matlab, возможно, более подробную информацию или ссылки можно будет отредактировать в этом ответе.
Элия ​​Каган
1

Просто для пояснения: почему вы хотите альтернативу Matlab? Ответ prasadkumar013 предполагает, что вы не можете использовать Matlab в Ubuntu, но вы можете (по крайней мере, я запускаю его в Ubuntu;)). На странице https://help.ubuntu.com/community/MATLAB есть документация сообщества .

Если вам нужна бесплатная альтернатива с октавой, большая часть кода Matlab будет работать непосредственно в октаве. Попробуйте поработать в терминале, хотя, на мой взгляд, графический интерфейс qtoctave был не очень удобным для пользователя.

Герхард Бургер
источник
1

Наиболее похож на MATLAB = Octave , (ссылка на GUI).
Потрясающий высокоуровневый высокоуровневый язык вычислений = julia
Но мой любимый и ИМХО самый полезный язык во всем, PYTHON (scipy, sage, cython ...)

nagordon
источник
0

http://pdl.perl.org/

PDL («Язык данных Perl») дает стандартному Perl возможность компактного хранения и быстрого манипулирования большими N-мерными массивами данных, которые являются основой научных вычислений.

Джанни
источник
0

Вы уже пробовали Sage ( www.sagemath.org )? Это контейнер для различных математических программ, и он может выполнять символьные и числовые вычисления. Последние сделаны с использованием Numpy и Scipy. У него очень активное сообщество, и это проект с открытым исходным кодом, написанный на Python.

Так как вы заинтересованы в выступлениях, здесь есть несколько тестов (в конце страницы также сравнение с Matlab).

Michele
источник
0

Это хорошая бумага.

Он имеет краткое объяснение и различные тесты.

Кстати, я не использую MATLAB или что-то подобное.

virpara
источник
-1

Я не проводил реальных сравнений, но по моему опыту чисто форма октавы с точки зрения производительности лучше, чем MATLAB.

Вы должны заметить, что «все относительно» разные наборы инструментов имеют разную производительность.

Если бы у вас было мало оперативной памяти на вашем компьютере, я бы сказал, что все будет работать лучше, чем MATLAB.

Али
источник
-2

Мой колледж использует MATLAB на своих ПК с Windows. Но для использования MATLAB в Ubuntu у меня было два варианта

  1. Установите MATLAB поверх Wine или любого программного обеспечения для виртуализации
  2. Найти Linux-эквивалент

Поскольку виртуализация на моем ноутбуке очень тяжелая, я искал альтернативу. После многих испытаний программного обеспечения я, наконец, остановился на OCTAVE. Он может работать с большинством стандартных кодов MATLAB. Вместо GNU Octave лучше перейти на qt Octave. В то время как первый основан на терминале, последний - на основе графического интерфейса. Мой выбор - пойти на Qt Octave

sudo apt-get install qtoctave

prasadkumar013
источник
4
Третий вариант - установить версию Matlab для Linux .
Элия ​​Каган