Различия между Октавой и MATLAB? [закрытый]
Я программист, который знает Python, Ruby и некоторые C, которые пытаются решить, изучать ли GNU Octave или Matlab. Я знаю, что у них много в общей, но мне не ясно, насколько похож синтаксис или даже структуры данных. Все говорят, что они "похожи", но никто не говорит, насколько они похожи на самом деле. Приведенная выше ссылка показывает несколько примеров, где они синтаксически похожи или идентичны, верно ли это для всего языка?
Я пытаясь изучить язык в целом, чтобы сделать больше научных вычислений, возможно, используя некоторые библиотеки анализа изображений. Я знаю, что есть много других языков, на которых я мог бы программировать, но мои советники говорят, что знание MATLAB или Octave имеет решающее значение в науках.
кроме того, стоит ли Matlab стоимость? У меня нет много денег, но если есть важные различия в библиотеках или в других местах, я уверен, что смогу найти деньги.
9 ответов:
вместо того, чтобы предоставить вам полный список различий, я дам вам свое мнение по этому вопросу.
Если вы внимательно прочитаете вики-страницу, которую вы предоставляете, вы часто увидите такие предложения, как "Октава поддерживает оба, в то время как MATLAB требует первого" и т. д. Это показывает, что разработчики Октавы пытаются сделать синтаксис Октавы "superior" в MATLAB по.
такое отношение заставляет Октаву полностью потерять свою цель. Идея октавы (или есть стань, Я должен сказать, см. комментарии ниже), чтобы иметь альтернативу с открытым исходным кодом для запуска m-кода. Если он пытается быть "лучше", он таким образом пытается быть разные, что не соответствует причинам, по которым большинство людей используют его. По моему опыту, запуск вещей, разработанных в MATLAB, никогда не работает за один раз, за исключением очень простых, очень коротких вещей-для любой значительной функции мне всегда приходится переводить много вещей, прежде чем он будет работать в Октаве, если не переписывать его с нуля. Как это лучше, Я не вижу...
кроме того, если вы изучаете Октаву, в Октаве разрешено много синтаксиса, который не разрешен в MATLAB. Значение -- код, написанный в Октаве, часто не работает в MATLAB без многочисленных преобразований. Это также не совместимо с другой стороны!
Я мог бы продолжить: в MathWorks есть много наборов инструментов для MATLAB, есть Simulink и связанные с ним продукты, для которых действительно нет эквивалента Октав (да, вам придется заплатить за все это. Но часто ваш работодатель / школа делает это в любом случае, и хорошо, это по крайней мере ), доказанное соответствие с несколькими индустриальных стандартов, испытывая инструменты, Инструменты утверждения, системы управления требования, поколение отчета, гораздо больше община & основание потребителя, ЕТК. так далее. так далее. MATLAB-это лишь малая часть чего-то гораздо большего. Октава есть...просто Октава.
Итак, мой совет:
- узнать, если ваша школа будет заплатите за MATLAB. Часто так и будет.
- если они этого не делают, и если вы можете наскрести деньги, купите MATLAB и научитесь правильно его использовать. В долгосрочной перспективе это лучшее решение.
- если вы действительно не можете получить деньги, использовать Октаву, но узнать синтаксис MATLAB и держаться подальше от октавы только синтаксис.
Почему этот последний пункт? Потому что в науках часто есть большие кодовые базы, полностью написанные в MATLAB. Есть профессора, инженеры, студенты, профессиональные кодеры, много и много людей, которые знают все сложные кровавые детали MATLAB, а не столько Октавы.
Если вы получаете новую работу, и все в Вашем новом офисе говорят по-испански, это довольно дерзко требовать от всех, чтобы они начали говорить по-английски с тех пор, просто потому, что вы не говорите / как испанский язык. То же самое с MATLAB и Octave.
NB -- если бы все downvoters могли просто оставить комментарий с их аргументами и причинами несогласия со мной, это было бы здорово:)
более полная ссылка на список различий находится на FAQ Октавы. Теоретически, весь код, который работает в Matlab, должен работать в Октаве, а разработчики Октавы рассматривают несовместимость с Matlab как ошибки. Поэтому ответ на ваш первый вопрос-да, в теории. Конечно, все программное обеспечение имеет ошибки, ни Октава, ни Matlab (да, Matlab тоже) не защищены от них. Вы можете сообщить о них, и кто-то попытается исправить их
Октава также имеет дополнительные функции большинство из них есть дополнительный синтаксис, который, на мой взгляд, делает код более читаемым и более осмысленным, особенно если вы привыкли к другим языкам программирования.
но есть больше, чтобы Октава, чем просто денежные затраты. Октава свободна также В смысле свободы, это libre, но я не думаю, что это место, чтобы разглагольствовать о свободе программного обеспечения.
Я делаю обработку изображений только в Октаве и считаю, что пакет изображений соответствует моим потребностям. Однако я не знаю, что будет вашим. Так что мой ответ на вопрос, стоит ли это стоить, нет, но, конечно, другие не согласятся.
MATLAB-это, прежде всего, коммерческое предложение. Поэтому все в MATLAB в значительной степени работает из коробки. Все основные функции являются твердыми, и если вы работаете над специальным проектом, то MATLAB, вероятно, имеет надстройку, которую они могут продать вам, что добавляет много дополнительных специфичных для домена .m файлов для вас. Это не дешево, но это работает, и он будет получать работу без жалоб.
Октава всегда показывает свои корни с открытым исходным кодом, информация-хочет-быть-свободным. Это бесплатно, и это напомнит вам, что это бесплатно при каждой возможности. Он разработан добровольцами, которые страстно ненавидят окна. Поэтому Октава работает на Windows неохотно. Довольно удивительно, что существует так много функций MATLAB, как они есть.
но вот в чем загвоздка. Всякий раз, когда вы пытаетесь сделать что-то более чем тривиально сложное, Октава внезапно ломается тонкими и трудными для понимания способами. Упс -- драйвер терминала имел переполнение где-то глубоко в слое OpenGL. Вы не могу печатать. Ой -- фигурные сюжеты делают странные вещи со своими шрифтами. Удачи выяснить, почему. Упс -- есть какая-то скрытая зависимость между Октавой и каким-то другим неясным битом свободного программного обеспечения, поэтому он не будет компилироваться. Удачи выяснить, что это такое.
и Октава ответ Эй! Это бесплатное программное обеспечение! У вас есть весь исходный код, вы можете исправить все эти ошибки сами! Возможно, если бы у меня было бесконечное время и ресурсы на моих руках, я мог бы потратить все свое время на исправление ошибок в бесплатное программное обеспечение, но я лично не. Если бы я работал в науке, я мог.
таким образом, в основе вопроса о том, следует ли выбирать MATLAB или Octave, сводится к одному вопросу. Интересно, что этот вопрос всегда один и тот же, при выборе между коммерческими и свободными вариантами программного обеспечения.
и вопрос:
У вас больше денег, чем времени?
Octave-это в основном версия MATLAB с открытым исходным кодом. Он был написан только что. MATLAB имеет очень хороший графический интерфейс, который делает его немного проще в использовании, но следующий стабильный выпуск OCTAVE также будет иметь графический интерфейс, который я тестировал в нестабильном выпуске, и выглядит фантастически. Octave гораздо более глючный, потому что он был разработан и поддерживается группой добровольцев, где разработка MATLAB финансируется миллионами долларов промышленностью. Я все еще студент и использую студента версия MATLAB, но я думаю о переходе на октаву, как только будет выпущена стабильная версия с графическим интерфейсом.
MATLAB, вероятно, намного мощнее, чем Октава, и алгоритмы работают быстрее, но для большинства приложений Октава более чем адекватна и, на мой взгляд, является удивительным инструментом, который полностью свободен, где Октава полностью свободна.
Я бы сказал использовать MATLAB, пока вы можете использовать академическую версию, но переход на октаву должен быть бесшовным, поскольку они используйте точно такой же синтаксис.
наконец, есть проблема SIMULINK. Если вы хотите сделать моделирование или проектирование системы управления (есть, вероятно, миллион других применений) SIMULINK является фантастическим и поставляется с MATLAB. Я не думаю, что какой-либо другой приближается к этому, хотя Scilab, по-видимому, является "хорошей" альтернативой с открытым исходным кодом, я ее не пробовал.
Мирный.
Я только начал использовать Октаву. И я видел, как люди используют Matlab. И одним из основных отличий, как упоминалось выше, является то, что Octave имеет интерфейс командной строки, а Matlab имеет графический интерфейс. По моему мнению, наличие графического интерфейса очень хорошо для отладки. В Ocatve вам нужно выполнить команды, чтобы увидеть, какова длина матрицы и т. д., Но в Matlab это хорошо показывает все, используя хороший интерфейс. Но Октава свободна и хороша для основных задач, которые я делаю. Если вы уверены, что вы собираетесь сделать просто основные вещи или вы не уверены, что вам нужно прямо сейчас, а затем перейти на октаву. Вы можете заплатить за Matlab, когда вы действительно чувствуете необходимость.
вещь делает Matlab настолько популярным и особенным является его отличные наборы инструментов в различных дисциплинах. Поскольку ваша главная цель-изучить Matlab, так что нет никакой разницы, если вы работаете с Octave или Matlab!
просто идти и покупать Matlab без какого-либо крутого набора инструментов (который в основном зависит от вашего майора) на самом деле не является разумным расходом!
вы определенно можете хорошо начать с октавы и следить за тоннами учебников по Matlab в интернете.
там не так много, что я хотел бы добавить к роды Oldenhuis ответа. Я обычно следую стратегии, что все функции, которые я пишу должны работать в Matlab.
некоторые конкретные функции я тестирую на обеих системах, для следующих случаев использования:
a) octave не нуждается в сервере лицензий-например, если ваше учреждение не поддерживает локальные лицензии. Я использовал его один раз в ситуации, когда система, в которой я использовал скрипт, не имела подключения к интернету и собиралась запустить в течение очень долгого времени (в углу, в лаборатории) и используется многими различными пользователями. Примечание: речь идет не о стоимости лицензии, а о технических вопросах, связанных.
B) Октава поддерживает другие платформы, например, Rasberry Pi (http://wiki.octave.org/Rasperry_Pi) - что может пригодиться.
вложенные функции и замыкания теперь поддерживаются многими языками, включая MATLAB. JavaScript продвигает закрытие как принцип проектирования первого класса.
к сожалению, Октава не поддерживает замыкания (вложенные функции с лексической областью).
согласно http://osdir.com/ml/octave-bug-tracker/2013-06/msg00210.html может даже сложиться впечатление, что разработчики не хотят или не могут сделать это правильно.
это сломает много кода, в обоих направлениях. Нет обходного пути.
Октава и matlab имеют много общего. Но Octave-это интерфейс командной строки. Вы должны ввести каждую команду в командной строке, в то время как matlab поставляется с лучшим графическим интерфейсом. Я рекомендую сначала использовать студенческую версию matlab; после изучения основных уроков используйте GNU octave permentaly. Теперь gnu octave поставляется с графическим интерфейсом, но теперь это версия для разработки. Есть некоторые интерфейсы gui для GNU octave, такие как guioctave, xoctave(не бесплатно), DOMAINMATH IDE и т. д.
Comments