LINUX.ORG.RU
ФорумTalks

Как можно жить с matlab?!

 , , , ,


0

3

Прошел университет (все курсовые и диплом с отличием) с python/sage math + latex, в аспирантуре приходится «сдвигаться» на matlab + word.

Но если к страданиям от использования Word удалось более или менее привыкнуть (ибо по ходу обучения все-таки приходилось много писать в Word ввиду требований), то с matlab столкнулся впервые.

На своем сайте они пишут:

The object-oriented programming capabilities of the MATLAB® language enable you to develop complex technical computing applications faster than with other languages, such as C++, C#, and Java™.

Они это серьезно?! После первой попытки «в лоб» сесть и написать простенький класс в matlba у меня случился приступ гнева. У них же все по-другому (не то что в C# или тем более Python) - это идиотская привязка к именам файлов. Какая-то неочевидная концепция где value-type и где reference-type, какой-то logical вместо boolean, отсутствие return, get() и set() в gui... в общем, адъ!

Библиотека алгоритмов и работа с матрицами сильны, но ООП/GUI на первый взгляд пророчат сильную попоболь :( И невольно вызывает желание провести параллель вида (python/* по отношению к matlab суть тоже, что *tex* по отношению к word).

Linux тут притом, что octave, как понимаю повторяет всю эту вакханалию.

Есть истории успеха, как удалось это пропустить через себя, не потеряв рассудок?

Надеюсь, я не прав и это только первое впечатление.

Ответ на: комментарий от Quasar

За тем, что преподаватели профнепригодны и не знают современные инструменты, а отчитаться надо.

А не приходила в голову мысль, что преподаватель далеко не всегда сам выбирает, чем ему пичкать? Есть такая вещь - рабочая программа. Если в ней записаны лабы по маткаду, я вынужден пичкать именно им, хотя ничего в жизни так не ненавидел как маткад.

curufinwe ★★★★★
()
Ответ на: комментарий от omegatype

движется к командной разработке

общий знаменатель

А ты уточни у будущей команды, может для них матлаб то же, что и для тебя :]

vasily_pupkin ★★★★★
()

А вот мне интересно. Как так получилось, что матлаб стали юзать для нейросетей? Это же просто интерактивный калькулятор с матрицами. Но нейронщиков он прям золотой стандарт, как R в статистике. Даже в MIT вводный курс по нейросетям на матлабе: http://ocw.mit.edu/courses/brain-and-cognitive-sciences/9-641j-introduction-t.... Что вот им на питоне не пишется?

Ну ладно бы в матлабе только пользовались готовыми тулбоксами и на кнопочки нажимали, но ведь свои алгоритмы пишут.

vasilenko ★★
()
Ответ на: комментарий от curufinwe

А я так и не понял, какая связь может быть между матлабом и питоном. Или вы все матлаб не по назначению используете, или я паровоз.

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

yvv ★★☆
()
Ответ на: комментарий от DELIRIUM

в матлаб довольно просто прокидывается код на C++

Когда я пробовал, низкоуровневый интерфейс к матрицам был примитивным (т.е. простым в плохом смысле), работать было очень неудобно, кроме того сам матлаб и самодельная .so работают в одном процессе, поэтому при ошибке в нижнем коде (а ошибиться там очень легко) валится весь матлаб с потерей всего воркспейса, и надо всю эту дуру грузить заново и все данные в нее и заново считать. Короче говоря, я данную фичу нашел неюзабельной. Но если туда не лезть, то какие проблемы с ним могут быть у автора, я не понял.

d_a ★★★★★
()
Ответ на: комментарий от curufinwe

А я так и не понял, какая связь может быть между матлабом и питоном.

питон хоть раз в жизни щупал?

snaf ★★★★★
()
Ответ на: комментарий от snaf

Питон щупал, numpy нет. Все равно симулинку прямой альтернативы нет.

curufinwe ★★★★★
()
Ответ на: комментарий от yvv

Как-то все это, мягко говоря, очень бледно выглядит по сравнению с возможностями матлаба. Уж лучше октава тогда.

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Питон щупал, numpy нет

очень бледно выглядит по сравнению с возможностями матлаба

Ты не пробовал ни numpy, ни scipy, matplot тоже наверняка нет, но они выглядят бледно. Ты настоящий ученый.

tailgunner ★★★★★
()
Ответ на: комментарий от unanimous

я тут помню кому-то доказывал, что ООП в числодробилке типа matlab не нужно.

Докажи теперь мне. Use case: прикрути, пожалуйста, к матлабу арифметику произвольной длины. Изменять код нежелательно, можно только поменять рутины, считывающие исходные данные.

не рассчитан матлаб на это.

dikiy ★★☆☆☆
()
Ответ на: комментарий от tailgunner

Чтобы сделать вывод о том, что жигуль на гоночной трассе выглядит бледно по сравнению с формулой 1, не обязательно быть пилотом и даже вообще уметь водить машину. Потому что это очевидно с первого взгляда. Неужели ты будешь серьезно утверждать, что numpy - серьезная альтернатива матлабу? А те кто его покупает за такие деньги сплошные идиоты.

curufinwe ★★★★★
()

кстати, кто еще не понял сообще - matlab крут не потому, что это какой-то клутой язык, а потому что это крутая «числодробилка». Со всем нужным на борту.

dikiy ★★☆☆☆
()

Ничего отдалённо напоминающего Simulink в питоне, к сожалению, нет.

Deleted
()
Ответ на: комментарий от Quasar

Матлаб был неплохим инструментом на момент своего появления. А это было давным давно, наверное даже до рождения многих обитателей ЛОРа. С тех пор много воды утекло, а матлаб каким был, таким по факту и остался.

так он что, деградировал за это время?

//пользователь octave.

dikiy ★★☆☆☆
()
Ответ на: комментарий от michwill

In MATLAB®, every function must be in a file of the same name, and you can't define local functions in an ordinary script file or at the command-prompt (inlines are not real functions but macros, like in C).

вот после этого я засомневался в компетентности автора.

dikiy ★★☆☆☆
()
Ответ на: комментарий от curufinwe

Чтобы сделать вывод о том, что жигуль на гоночной трассе выглядит бледно по сравнению с формулой 1, не обязательно быть пилотом

Люблю сравенение с Жигулями. Это всегда слив.

Неужели ты будешь серьезно утверждать, что numpy - серьезная альтернатива матлабу?

Не стану - матлабом никогда не пользовался. Но Python+Numpy+Scipy у нас используется для прототипирования сложных алгоритмов на матрицах, и я утверждаю, что для этого он более чем пригоден.

А те кто его покупает за такие деньги сплошные идиоты.

Ну почему же сплошные... может, им нужен многократно упомянутый здесь Simulink. А может, они получают долю малую от «таких денег».

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Не стану - матлабом никогда не пользовался.

Отлично, значит у нас разговор в духе «Посмотрим, сказал слепой глухому».

Но Python+Numpy+Scipy у нас используется для прототипирования сложных алгоритмов на матрицах, и я утверждаю, что для этого он более чем пригоден.

Я не говорил, заметь, что numpy чем-то плох или не нужен. Я утверждал лишь что полноценной заменой матлабу он мягко говоря не является.

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Отлично, значит у нас разговор в духе «Посмотрим, сказал слепой глухому».

Не вали с больной головы на здоровую. Я не оцениваю возможности Numpy по сравнению с Matlab.

Я не говорил, заметь, что numpy чем-то плох или не нужен. Я утверждал лишь что полноценной заменой матлабу он мягко говоря не является.

А перед этим ты заявил, что Numpy просто не знаешь:

curufinwe> Питон щупал, numpy нет

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от curufinwe

перед этим ты заявил, что Numpy просто не знаешь

Я смотрел список его возможностей.

Numpy возможности Python в этой области не исчерпываются, но ладно... чего тебе не хватило?

tailgunner ★★★★★
()

Я тут на svn после git смотреть не могу.. а вы говорите матлаб после пистона.

Пиши на том, на чём удобнее. На чём эффективнее в сжатые сроки напишешь что-то работающее и приносящее пользу. Для меня это python+numpy+[scipy+pyopencl].

ООП там не нужно, а вот ФП-возможности пистона (пусть и скудные) - кстати.

Кстати, ещё рекомендую обратить внимание на R (своеобразный диалект Scheme)

BattleCoder ★★★★★
()
Ответ на: комментарий от curufinwe

рабочая программа
в ней записаны лабы по маткаду

Рабочую программу составляют преподаватели (и согласуют с кафедрой) на основе стандарта специальности. Поэтому у препода есть полная возможность выбора.

Deleted
()

в аспирантуре приходится «сдвигаться» на matlab + word.

А вообще, бросай аспирантуру, не трать свою жизнь на это, жизнь одна. И вообще, всё тлен, жизнь боль, иди в армию, там хоть за год отмучаешься, а не за три.

BattleCoder ★★★★★
()
Ответ на: комментарий от Deleted

Поэтому у препода есть полная возможность выбора.

Ага, особенно у ассистента-стажера. К тому же я не фанатик СПО чтобы ради питона все методички с нуля писать за те деньги которые получаю.

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

симулинк

Судя по топику, он нужен отнюдь не всем.

А вообще в матлаб чего только не понапихано.

Ну, «чего только» в Python больше. Вопрос в том, что нужно.

tailgunner ★★★★★
()
Ответ на: комментарий от BattleCoder

Со всем нужным на борту, кроме нормального ЯП. Я так понял, для вас ЯП не нужен.

совершенно верно понял. Мне ЯП в обычном своем понимании (то есть со всякими там типами/структурами/хз чем еще) от числодробилки не нужен.

dikiy ★★☆☆☆
()
Ответ на: комментарий от curufinwe

Ага, особенно у ассистента-стажера.

У нас дают свободу в выборе иструмента (при условии полного выполнения задания, конечно) даже студентам, так что ссзб с выбором вуза.

я не фанатик СПО чтобы ради питона все методички с нуля писать за те деньги которые получаю

Люди с таким настроем на работу редко получают много. А так — тот же студент за зачет тебе и не такое напишет.

Deleted
()
Ответ на: комментарий от prischeyadro

+1 кстати. А какие в матлабе средства для работы с моделью в пространстве состояний! А возможность синтеза LQR регулятора вызовом двух-трех функций где еще есть?

Alden ★★★★
()
Ответ на: комментарий от omegatype

Нет. Я прошёл заочно. Военка. «Прослужил» один месяц.

BattleCoder ★★★★★
()
Ответ на: комментарий от dikiy

А если задача посложнее? Клепать интерфейс для числодробилки к другому ЯП?

Всё-таки мне кажется, если бы у матлабовского языка был синтаксис попродвинутее, он бы от этого только выиграл. Взять тот же R.

BattleCoder ★★★★★
()
Ответ на: комментарий от unanimous

не рассчитан матлаб на это.

Ну вот тебе контрпример: Multiprecision Computing Toolbox for MATLAB

какой-же это контрпример? Я думал, что ты хочешь чтобы сделать так, чтоб все _внутренние_ функции автоматом любой точности достигали. А это просто нашлепка сверху, которая перегружаетс встроенные функции.

dikiy ★★☆☆☆
()
Ответ на: комментарий от BattleCoder

А если задача посложнее? Клепать интерфейс для числодробилки к другому ЯП?

писать на сях/питоне с использованием внешних либ.

Всё-таки мне кажется, если бы у матлабовского языка был синтаксис попродвинутее, он бы от этого только выиграл. Взять тот же R.

ну выиграл бы, да; кто ж спорит. Но отсутствие хорошего ООП, других плюшек из ЯП не особо влияет на положение вещей и целевое применение матлаба.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

А это просто нашлепка сверху, которая перегружаетс встроенные функции.

А не ООП ли это? И еще, вот тут автор жалуется, что ООП в матлабе недостаточно продвинутое:

I don’t want to comment MATLAB’s results in details. All I can say – MathWorks should do some serious changes to their development process. At least approaches / codes related to OOP should be completely re-considered.

Подводя итоги, становится ясно, что хорошее ООП в числодробильном языке ох как не повредит.

unanimous ★★★★★
()
Ответ на: комментарий от Alden

А возможность синтеза LQR регулятора вызовом двух-трех функций где еще есть?

бгг. там же нифига сложного нет. Это можно на любом питоне набросать за вечер. тем более, что судя по всему он даже работает не так как надо :)

ведь без ограничений на состояние u - задача на бесконечном интервале времени может просто не иметь решения. А в функции я чо-та не увидел возможности ограничения состояния u.

а так - там и матрицы константные.... А если они зависят от t, то уже непрямым методом (то есть решением уравнения Рикатти) мало что выйдет. Короче - LQR в матлабе ничем выдающимся не отличается.

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от BattleCoder

Со всем нужным на борту, кроме нормального ЯП. Я так понял, для вас ЯП не нужен.

Того что есть (ненормального) хватает более чем.

d_a ★★★★★
()
Ответ на: комментарий от unanimous

А это просто нашлепка сверху, которая перегружаетс встроенные функции.

А не ООП ли это?

в каком месте?

Подводя итоги, становится ясно, что хорошее ООП в числодробильном языке ох как не повредит.

не повредит конечно, но и какой-то сверхнужной фичей не является.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

в каком месте?

Три кита ООП — инкапсуляция, наследование и полиморфизм. Перегрузка относится к последним — одно и то же имя ведет себя по разному при вызове с разными аргументами. Кроме того, behind the scene есть еще и инкапсуляция, ведь кроме операторов есть еще и переменные, хранящие длинные числа, представление которых отлично от представления встроенного double.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

в каком месте?

Три кита ООП — инкапсуляция, наследование и полиморфизм. Перегрузка относится к последним — одно и то же имя ведет себя по разному при вызове с разными аргументами.

Вот когда все вместе, тогда ООП. А по-отдельности - не ООП. тем более там насколько я понял прямое замещение функций. Без всяких вариантов. Но даже если и не так, то пофиг. К ООП это по большому счету имеет такое же отношение как велосипед к самолету: и там и там есть колеса.

dikiy ★★☆☆☆
()
Ответ на: комментарий от curufinwe

Неужели ты будешь серьезно утверждать, что numpy - серьезная альтернатива матлабу?

Ты даже понятия не имеешь что это такое, а делаешь громкие утверждения. Numpy это база для кучи модулей, которые являются совершенно серьёзной альтернативой матлабу.

yvv ★★☆
()

все очень просто.

Не надо писать в матлабе в ООП стиле. Совсем не надо.

Stil ★★★★★
()
Ответ на: комментарий от curufinwe

Как-то все это, мягко говоря, очень бледно выглядит по сравнению с возможностями матлаба. Уж лучше октава тогда.

Точно, не понимаешь о чём говоришь. Octave на сегодня - самый убогий математический пакет.

yvv ★★☆
()
Ответ на: комментарий от yvv

Octave на сегодня - самый убогий математический пакет.

Для тех целей, для которых *нормальные* исследователи юзают матлаб — быстрое прототипирование — она прекрасно матлаб заменяет. Но люди с вантузятническими наклонностями всегда хотят превратить узкоспециализированный инструмент в универсальный, в результате чего тот же матлаб непомерно разбух.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

ОК, мне надоело спорить.

да я в общем и не спорил. Так, ворчал :)

dikiy ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.