Меня недавно попросили изучить некоторые основы MATLAB для класса.
Что делает его таким крутым для исследователей и людей, которые работают в университете? Я видел, как здорово работать с матрицами и строить графики ... (вещи, которые можно легко сделать в Python с помощью некоторых библиотек).
Написание функции или разбор файла просто болезненно. Я все еще в начале, что мне не хватает?
Что я должен думать, чтобы использовать это в «реальном» мире? Когда он может работать лучше, чем Python? Для лучшего я имею в виду: простой способ написать что-то исполнительское.
ОБНОВЛЕНИЕ 1: Одна из вещей, которые я хотел бы знать больше всего, это "Я что-то упускаю?" : D
ОБНОВЛЕНИЕ 2: Спасибо за ответы. Мой вопрос не в том, покупать или не покупать MATLAB. У университета есть возможность бесплатно предоставить мне копию старой версии MATLAB (думаю, MATLAB 5) без нарушения лицензии. Меня интересуют его возможности, и если он заслуживает более глубокого изучения (мне не понадобится ничего, кроме базовый MATLAB, чтобы сдать экзамен: P), он действительно будет лучше, чем Python для определенного типа задач в реальной жизни. Мир.
Символьные вычисления - одна из функций, которые делают Matlab интересным для работы, помимо многочисленных библиотек. Я также использовал его для численного анализа и моделирования обработки сигналов с помощью simulink. Может быть, нет смысла использовать его для того, для чего вы его учитесь, но это замечательный инструмент для академического и исследовательского мира, этого «царства фантазий», где хорошие идеи, изобретения и технологии будущего используются в «реальном» мире. откуда, знаете?






MATLAB отлично подходит для манипулирования массивами, выполнения специализированных математических функций и для быстрого создания хороших графиков.
Я бы, вероятно, использовал его только для больших программ, если бы мог использовать множество манипуляций с массивами / матрицами.
Вам не нужно беспокоиться об IDE так же сильно, как о более формальных пакетах, поэтому студентам, не имеющим большого опыта программирования, легче подобрать.
Что вы имеете в виду под «вам не нужно беспокоиться об IDE так же сильно, как о более формальных пакетах»? Думаю, я не понял.
Вам не нужно заниматься компоновкой, сборкой, компиляцией и т. д. (По большей части). Я еще не играл с Python, но уверен, что это немного сложнее, чем запуск первой программы Matlab.
В моем университете EE работает так: профессора заставляют студентов использовать Matlab для построения графиков определенных вещей. Тогда, поскольку они уже знакомы с этим, им легче перейти к программированию.
Я не думаю, что это проще: \ Вы должны хотя бы попробовать python, как я делаю с matlab: P
Если под EE вы имеете в виду электронную инженерию, то то же самое и со мной: D
Я скачал Python, просто еще не успел.
Вам также не нужно заниматься компоновкой, сборкой или компиляцией на Python. В этом отношении Python и Matlab одинаковы.
Наиболее вероятная причина того, что он так часто используется в университетах, заключается в том, что математические факультеты привыкли к нему, понимают его и знают, как включить его в свои учебные программы.
Между matplotlib + pylab и NumPy я не думаю, что есть большая разница между Matlab и python, кроме культурной инерции, предложенной @Adam Bellaire.
Документация Matlab намного лучше, чем у Python. Matlab также поставляется с множеством встроенных функций, которые мне еще предстоит увидеть с Numpy или Pylab.
Matlab имеет тысячи встроенных функций, но также стоит тысячи долларов. Я вижу, что Matlab и Python сходятся с Matlab, получая идеи от Python для его ООП, и Python всегда лучше в числовом выражении.
Основная причина, по которой он полезен в промышленности, - это плагины, построенные на основе основных функций. Почти все активные разработки Matlab за последние несколько лет были сосредоточены на них.
К сожалению, у вас не так много возможностей использовать их в академической среде.
Преимущество первого хода. Matlab существует с конца 1970-х годов. Python появился совсем недавно, а библиотеки, которые делают его подходящим для задач типа Matlab, появились совсем недавно. Люди привыкли к Matlab, поэтому они его используют.
MATLAB, как упоминалось другими, отлично справляется с манипуляциями с матрицами и изначально был построен как расширение известных библиотек BLAS и ЛАПАК, используемых для линейной алгебры. Он хорошо взаимодействует с другими языками, такими как Java, и пользуется успехом у инженерных и научных компаний за его хорошо разработанные и документированные библиотеки. Из того, что я знаю о Python и NumPy, хотя они разделяют многие фундаментальные возможности MATLAB, они не обладают всей широтой и глубиной возможностей своих библиотек.
Лично я использую MATLAB, потому что это то, чему я научился на стажировке, это то, что я использовал в аспирантуре, и это то, что я использовал на своей первой работе. Я ничего не имею против Python (или любого другого языка). Это то, что я тоже использовал.
Кроме того, есть еще одна бесплатная версия в дополнение к scilab, упомянутому @ Джим С из gnu, под названием Октава.
Одна из причин, по которой MATLAB популярен среди университетов, - это та же самая причина, по которой многие вещи популярны среди университетов: с ним знакомо много профессоров, и он довольно надежен.
Я разговаривал со многими людьми, которых особенно интересует возникающая способность MATLAB подключаться к графическому процессору вместо того, чтобы работать последовательно. Я использовал Python в аспирантуре и хотел бы иметь возможность работать с MATLAB в этом случае. Это, несомненно, упростило бы вычисления в векторном пространстве.
Я считаю, что у вас есть очень хорошая точка зрения, и она выросла в компании, в которой я работаю. Компания ограничена в возможности применять Matlab из-за связанных с этим затрат на лицензирование. Один разработчик доказал, что Python был очень подходящей заменой, но он попался на уши невежественных людей, потому что владельцы этих ушей ...
Если оно стоит 10 000 фунтов стерлингов (??), оно того стоит !!
Я здесь с тобой. Python - очень хорошая замена MatLab.
Я должен отметить, что мне сказали, что компания использует от 5% до 10% возможностей MatLabs, и это основа моего согласия с исходным плакатом.
Приятно знать, не могли бы вы рассказать мне, что производит ваша компания и для чего используется Matlab? В любом случае это просто для личного интереса, я не думаю, что когда-нибудь буду работать в качестве разработчика Matlab: P
MATLAB не ТАК дорогой. За 2 тысячи долларов за место вы получаете базовую версию без дополнительных модулей.
Адам прав лишь частично. Многие математики, если не большинство, никогда не коснутся этого. Если вообще используется компьютерный инструмент, это будет что-то вроде Mathematica или Клен. С другой стороны, инженерные отделы часто полагаются на него, и некоторые прикладные математики могут найти полезные вещи. В некоторых областях он также широко используется в промышленности.
Что вам нужно знать о MATLAB, так это то, что он начинался как оболочка для библиотек Фортран для линейной алгебры. Долгое время считалось, что «весь мир - это массив двойников (поплавков)». Как язык, он вырос очень органично, и есть некоторые недостатки, которые очень сильно запеклись, если рассматривать его просто как язык программирования.
Однако, если вы посмотрите на него как на среду для проведения определенных видов исследований, у него есть несколько реальных сильных сторон. Это почти так же хорошо, как и для линейной алгебры с плавающей запятой. Обозначения просты и действенны, внедрение быстрое и надежное. Он очень хорош для создания графиков и других интерактивных задач. Существует большое количество доступных по цене "наборов инструментов" с хорошим кодом для конкретных задач. Существует большое сообщество пользователей, которые разделяют числовые коды (Python + NumPy не имеет ничего общего с той же лигой, по крайней мере, пока)
Python, без всяких проблем и прочего, намного лучший язык программирования (как и многие другие). Однако с точки зрения инструментов он отстает примерно на десять лет.
Ключевым моментом является то, что большинство людей, использующих MATLAB, на самом деле не программисты и не хотят им быть.
Паршивый выбор для общего языка программирования; он необычный, медленный для многих задач (вам нужно векторизовать вещи, чтобы получить эффективные коды), и его нелегко интегрировать с внешним миром. С другой стороны, что касается вещей, в которых он хорош, он очень хорош. Сравнивать очень мало. Есть компания с разумной поддержкой, и кто знает, сколько человеко-лет в нее вложено. Это может иметь значение в промышленности.
Если внимательно посмотреть на сравнение Python и MATLAB, то в основном это разные инструменты для разных работ. В тех областях, где они немного пересекаются, трудно сказать, какой путь лучше (во многом зависит от того, что вы пытаетесь сделать). Но в основном Python не так уж хорош в основных сильных сторонах MATLAB, и наоборот.
У Matlab теперь есть JIT-компилятор, что означает, что в наши дни вам редко приходится векторизовать код только по соображениям производительности.
На самом деле это не так. JIT помогает, это намного лучше, чем ничего, но вы все равно должны правильно структурировать свой код. Векторизованный код может быть на много порядков быстрее, чем наивный код Matlab. По моему опыту, JIT может вернуть вас в 2 или 5 раз.
Векторизация уже не так важна, как раньше. Это все еще может помочь в некоторых ситуациях, но это уже не то, что вам нужно делать имеют. К вашему сведению: векторизация - это идея работы с матрицей или вектором данных, а не с одним скаляром в цикле через вектор.
MatlabDoug: О, я согласен, это не так важно, как раньше, но это все еще проблема, а иногда и огромная проблема. И ничто из этого не говорит о других дизайнерских особенностях Matlab как общего языка программирования (хотя я отмечу, что с 2008 года объектная модель лучше)
Векторизация по-прежнему очень важна. С появлением SSE и более широких регистров возникла необходимость выжать производительность из процессора. Я не могу комментировать Matlab в целом, но сказать, что векторизация не важна, просто неправильно, особенно в крупномасштабном программном обеспечении, которое чувствительно к задержке.
Я полностью не согласен с тем, что JIT делает векторизованный код бесполезным. Мы часто используем Matlab для проведения экспериментов, которые занимают несколько недель или месяцев. Представьте, что если бы программа работала вдвое медленнее, без векторизации, нам понадобится, например, 2 месяца вместо 1 -> срок до свидания !! (и вдвое медленнее - это ОЧЕНЬ оптимистично).
@simon: не могли бы вы привести примеры полезных / важных «наборов инструментов», которые есть в Mtlab и которых нет в экосистеме Python + NumPy + SciPy + Matplotlib? Я задаю этот вопрос, потому что считаю, что SciPy может многое предложить, и мне почти никогда не нужно использовать дополнительные внешние числовые коды.
@EOL scipy / numpy стал лучше с тех пор, как я написал это. Однако в доменной области он все еще сильно отстает. Simulink, системы управления, статистика, сбор данных, финансы и т. д. Все эти наборы инструментов шире, глубже, надежнее или все три по сравнению с предложениями с открытым исходным кодом.
@simon: Насколько я знаю, это звучит справедливо. :) Я, однако, не эксперт, и мне интересно, знают ли эксперты об инструментах предметной области, которые хорошо обрабатываются с помощью Python (машинное обучение с scikit-learn и друзьями? Временные ряды с Pandas и аналогичными инструментами?…).
Прошло некоторое время с тех пор, как я использовал Matlab, но по памяти он предоставляет (хотя и с дополнительными плагинами) возможность генерировать исходный код, чтобы вы могли реализовать свой алгоритм на DSP.
Поскольку python является языком программирования общего назначения, нет причин, по которым вы не могли бы делать на python все, что вы можете делать в Matlab. Однако Matlab предоставляет ряд других инструментов, например. очень широкий набор функций dsp, широкий набор функций S- и Z-областей.
Все это можно было бы вручную закодировать на python (поскольку это язык общего назначения), но если все, что вам нужно, это результаты, возможно, потратить деньги на Matlab - более дешевый вариант?
Эти функции также были настроены для повышения производительности. например. В документации для Numpy указано, что их преобразование Фурье оптимизировано для мощности двухточечных наборов данных. Насколько я понимаю, Matlab был написан для использования наиболее эффективного преобразования Фурье в соответствии с размером набора данных, а не только степенью 2.
edit: О, и в Matlab вы можете очень легко создавать сенсационные графики Ищу, что важно, когда вы представляете свои данные. Опять же, конечно, невозможно с использованием других инструментов.
Вроде чистая инерция. Там, где он используется, все слишком заняты, чтобы изучить IDL или numpy достаточно подробно, чтобы переключаться, и не хотят переписывать хорошо работающие программы. К счастью, это не совсем так, но достаточно верно в достаточном количестве мест, чтобы Matlab просуществовал долгое время. Нравится Fortran (активно использую там, где я работаю!)
Лично я склонен думать о Matlab как о интерактивном матричном калькуляторе и инструменте построения графиков с некоторыми возможностями создания сценариев, а не как о полноценном языке программирования, таком как Python или C. коробки, и вы можете делать в ней несколько очень специфических вещей, практически не имея реальных знаний в области программирования. Как вы отметили, язык крайне неприятен при использовании для более общих задач, таких как даже простейшая обработка строк. Его синтаксис необычен, и он не был создан с учетом абстракций, необходимых для проектов, содержащих более 100 строк или около того.
Я думаю, что причина, по которой люди пытаются использовать Matlab в качестве серьезного языка программирования, заключается в том, что большинство инженеров (есть исключения; у меня степень в области биомедицинской инженерии, и мне нравится программирование) ужасные программисты и ненавидят программировать. В колледже их обучают Matlab в основном для математической математики, и они изучают элементарное программирование в рамках изучения Matlab и просто предполагают, что Matlab достаточно хорош. Я не могу вспомнить кого-нибудь, кого я знаю, кто знает какой-либо язык, кроме Matlab, но по-прежнему использует Matlab для чего-либо, кроме нескольких приложений для вычисления чистых чисел.
Думаю, вы ответили на свой вопрос, когда заметили, что Matlab «круто работать с матрицами и строить графики». Любое приложение, которое требует много математических вычислений и визуализации, вероятно, будет проще всего выполнить в Matlab.
Тем не менее, синтаксис Matlab кажется неудобным и показывает возраст языка. Напротив, Python - гораздо более приятный язык программирования общего назначения, и с правильными библиотеками он может делать многое из того, что делает Matlab. Однако Matlab всегда будет иметь более сжатый синтаксис, чем Python, для работы с векторами и матрицами.
Если большая часть вашего программирования включает такого рода манипуляции, например, обработку сигналов и некоторые статистические методы, то Matlab будет лучшим выбором.
Хммм, я должен немного с вами не согласиться ... с NumPy синтаксис манипулирования векторами / массивами Python в основном так же прост, как и MATLAB. И для> 2-мерных матриц MATLAB становится очень беспорядочным, в то время как NumPy полностью согласован.
Вы, может быть, и правы, но я думаю, это эстетика. Даже после просмотра всех этот стол от Matlab до эквивалентов NumPy я все еще думаю, что Matlab немного аккуратнее. Однако не использовались ни для тензоров.
Библиотеки, предоставляемые с Matlab, намного больше, чем все, что я видел с numpy.
MATLAB - популярная и широко адаптированная часть сложный программный комплекс. Было бы ошибкой думать это просто математическая программа, поскольку она имеет широкий спектр «Ящики для инструментов». Недавно я использовал Матплотлиб для построения некоторых данных из базы данных, и он выполнил свою работу без необходимости навороты MATLAB. Однако это может быть неправильно для сравнения Python и MATLAB в любой ситуации. Как и в случае с В остальном решение зависит от того, что вам нужно делать.
Я использовал MATLAB в бакалавриате для проектирования систем управления и моделирование, а также для обработки изображений в аспирантуре. Для эти поля MATLAB имеет наибольший смысл из-за мощные инструменты управления и обработки изображений. Как все упомянутые операции с массивами, которые используются в каждом MATLAB сценарий, который вам нужно написать, очень прост в MATLAB.
Еще одна приятная вещь в MATLAB - это то, что это очень просто и быстро создавать прототипы и опробовать идеи с помощью встроенных в функциях панели инструментов. Например, не требуется усилий, чтобы импортировать изображение и вычислить его гистограмму или сделать несколько простых обработка на нем. Одним из недостатков MATLAB может быть то, что скорость из-за ее интерпретируемого характера. Однако если один действительно нужна скорость, чем он может выбрать, чтобы реализовать протестированная логика на C / C++ и т. д.
Для дальнейшего сравнения с Python могу сказать, что MATLAB предоставляет вам полный пакет услуг, чтобы вы могли выполнять свою работу без необходимость искать внешние библиотеки и реализация дополнительных функций.
Последний пункт о MATLAB, который я вижу, не упоминается в ответы здесь заключаются в том, что у него очень мощный визуальный Среда моделирования / имитации называется Simulink. Это проще проектировать и моделировать большие системы с Simulink.
Наконец, опять же, все зависит от проблемы, которую вам нужно решить. решать. Если ваш проблемный домен может использовать один из Наборы инструментов MATLAB, и у вас есть доступ к MATLAB, тогда вы можете быть уверены, что у вас будет подходящий инструмент для ее решения.
MATLAB БЫЛ оболочкой для общедоступных библиотек. И во многих случаях это все еще так. Когда вы доберетесь до большего наборы данных, в нем много дополнительных оптимизаций, в том числе общие проблемы обследования и специальной обсадной колонны (сокращение до разреженные матрицы, где это полезно, например), и обработка крайние случаи. Часто вы можете представить проблему в стандартном форму в общую функцию, и это определит лучший базовый алгоритм для использования на основе ваших данных. Для малых N, все алгоритмы быстрые, но MATLAB определяет оптимальный алгоритм не проблема.
Это написано кем-то, кто ненавидит MATLAB и пробовал заменить его из-за проблем с интеграцией. От твоего вопрос, вы упомянули получение MATLAB 5 и использование его для курс. На этом уровне вы можете захотеть посмотреть на Октава, реализация с открытым исходным кодом с тем же синтаксис. Я предполагаю, что на данный момент это уровень MATLAB 5 (я только поиграйтесь с этим). Это должно позволить вам "пройти ваш экзамен ". Для простой функциональности MATLAB это кажется Закрыть. Отсутствует поддержка набора инструментов (что, опять же, в основном служит для переформулирования вызовов функций к формам знакомы инженерам в этой области и выбирают правильный базовый алгоритм для использования).
Держи все. Когда вы в последний раз программировали свой калькулятор для игры в тетрис? Вы действительно думали, что можете написать все, что захотите, в эти 128 КБ ОЗУ? Скорее всего, нет. MATLAB не предназначен для программирования, если вы не имеете дело с огромными матрицами. Это графический калькулятор, который вы выбираете, когда у вас есть мегабайты или гигабайты данных для обработки и / или построения графика. Изучите только базовые вещи, но также не убивайте себя, пытаясь сделать Python графическим калькулятором.
Вы быстро почувствуете, когда вы хотите обрабатывать, строить или исследовать в MATLAB, и когда вы хотите иметь все, что предлагает Python. Многие инженеры обращаются к предварительной и постобработке на Python или Perl. Иногда даже просто обращаюсь к MATLAB за жесткими битами.
Это такие совершенно разные инструменты, что вы должны сначала изучить их основные сильные стороны, не пытаясь заменить одно другим. Из соображений экономии я бы использовал Octave или сэкономил на легкости и научился работать с разреженными матрицами на Perl или Python.
Я много лет использую Matlab в своих исследованиях. Он отлично подходит для линейной алгебры и имеет большой набор хорошо написанных наборов инструментов. Самые последние версии начинают приближать его к языку общего назначения (улучшенные оптимизаторы, гораздо лучшая объектная модель, более обширные правила области видимости и т. д.).
Этим летом у меня была работа, на которой я использовал Python + numpy вместо Matlab. Мне понравилась смена темпа. Это «настоящий» язык (и все, что влечет за собой), и у него есть отличные числовые функции, такие как массивы широковещания. Мне также очень нравится среда ipython.
Вот некоторые вещи, которые я предпочитаю в Matlab:
Если бы у меня не было такой большой существующей кодовой базы, я бы серьезно подумал о переходе на Python + numpy.
Документация Matlab действительно исключительна. Ничто из того, что я видел, не сравнится с этим.
Полностью согласен с этим комментарием. Синтаксис неуклюжий, но документация все упрощает.
MATLAB - фантастический инструмент для
Вы действительно можете очень эффективно поиграть, визуализировать и протестировать свои идеи на наборе данных. Его не следует рассматривать как альтернативу другим программным языкам, используемым для разработки продуктов. Я настоятельно рекомендую его для вышеперечисленных задач, хотя это дорого - бесплатные альтернативы, такие как Октава и Python, наверстывают упущенное.
Я знаю, что это старый вопрос, поэтому он больше не может быть смотрел, но чувствовал необходимость прокомментировать. Как аэрокосмический инженер Технологического института Джорджии, я могу сказать, что сомневается, что MATLAB потрясающий. Вы можете получить это быстро взаимодействовать с таблицами Excel, чтобы получать данные о как высоко и быстро летают ракеты, как влияет ветер те же ракеты и какое значение имеют разные двигатели. Вне ракетная техника, аналогичные концепции используются для автомобилей, грузовиков, самолет, космический корабль и даже легкая атлетика. Вы можете втянуть большие объемы данных, манипулируйте ими и убедитесь, что ваши результаты такие, какими они должны быть. В случае, если что-то выкл, вы можете добавить разрыв строки, где возникает ошибка, для отладки ваша программа без необходимости перекомпилировать каждый раз, когда вы хотите для запуска вашей программы. Он медленнее некоторых других программ? Ну, технически. Я уверен, если ты хочешь набрать номер он отлично подходит для графического процессора NVIDIA, он вероятно, будет быстрее, но для этого потребуется гораздо больше усилий с более сложной отладкой.
Как общий язык программирования, MATLAB слаб. Это не предназначен для работы с Python, Java, ActionScript, C / C++ или любой другой язык общего назначения. Это предназначено для ниша инженерии и математики, как следует из названия, делает это фантастически.
Matlab хорошо справляется с обработкой чисел. Также матрица и матричная манипуляция. Он имеет множество полезных встроенных библиотек (зависит от версии). Я думаю, что его проще использовать, чем python, если вы собираетесь вычислять уравнения.
В большинстве ответов нет смысла.
Есть ОДНА причина, по которой Matlab настолько хорош и так широко используется:
Я изучаю докторскую степень по компьютерному зрению и использую Matlab в течение 4 лет, до получения докторской степени я использовал разные языки, включая C++, java, php, python ... Большинство исследователей компьютерного зрения используют исключительно Matlab.
В исследовательской среде у нас (надеюсь) часто появляются новые идеи, и мы хотим быстро их протестировать, чтобы увидеть, стоит ли продолжать в том же направлении. И чаще всего полезна лишь небольшая часть того, что мы кодируем.
Matlab часто медленнее во время выполнения, но нас это не особо заботит. Поскольку мы не знаем заранее, какой метод будет успешным, мы должны попробовать много вещей, поэтому наше горлышко бутылки - время программирования, потому что наш код чаще всего запускается несколько раз, чтобы получить результаты для публикации, и все.
Итак, давайте посмотрим, чем может помочь Matlab.
В Matlab действительно много функций, которые мне нужны, так что мне не нужно постоянно их изобретать:
изменить индекс матрицы на 2-ю координату: ind2sub извлечь все фрагменты изображения: im2col; вычислить гистограмму изображения: hist(Im(:)); найти уникальные элементы в списке unique(list); добавить вектор ко всем векторам матрицы bsxfun(@plus,M,V); свертка на n-мерных массивах convn(A); рассчитать время вычисления части кода: tic; %%code; toc; графический интерфейс для кадрирования изображения: imcrop(im);
Список может быть очень длинным ... И их очень легко найти с помощью справки.
Ближе всего к этому питон ... Но это просто боль в питоне, мне каждый раз приходится заходить в гугл, чтобы найти имя нужной мне функции, а затем мне нужно добавить пакеты, а пакеты несовместимы один с другим, формат изменения матрицы, функция свертки обрабатывает только удвоения, но не делает ошибку, когда я даю ей char, просто выдает неправильный вывод ... нет
Пример: запускаю скрипт. Выдает ошибку из-за матрицы. Я все еще могу выполнять код из командной строки. Я представляю, как это происходит: imagesc(matrix). Я вижу, что последняя строка матрицы странная. Исправляю ошибку. Все переменные по-прежнему установлены. Я выбираю оставшуюся часть кода, нажимаю F9, чтобы выполнить выбор, и все продолжается. Отладка становится быстрой, спасибо.
Matlab подчеркивает некоторые из моих ошибок перед выполнением. Так что я могу быстро увидеть проблемы. Он предлагает способ ускорить мой код.
В IDE есть замечательный профайлер. KCahcegrind - такая боль в использовании по сравнению с этим.
IDE python внушают страх. python без ipython использовать нельзя. Мне никогда не удается отладить, используя ipython.
+ автозаполнение, справка по аргументам функции, ...
Чтобы нормализовать все столбцы матрицы (что мне нужно постоянно), я делаю:
bsxfun(@times,A,1./sqrt(sum(A.^2)))
Чтобы удалить из матрицы все столбцы с небольшой суммой:
A(:,sum(A)<e)=[]
Выполнение вычислений на графическом процессоре:
gpuX = gpuarray(X);
%%% code normally and everything is done on GPU
Чтобы парализовать мой код:
parfor n=1:100
%%% code normally and everything is multi-threaded
Какой язык может это победить?
И, конечно, мне редко нужно делать циклы, все включено в функции, что упрощает чтение кода, и нет головной боли с индексами. Так что я могу сосредоточиться на том, что я хочу запрограммировать, а не на том, как это программировать.
Matlab славится своими графическими инструментами. Они очень полезны.
Инструменты построения графиков Python имеют гораздо меньше возможностей. Но есть одна вещь, которая очень раздражает. Вы можете рисовать цифры только один раз за сценарий ??? если у меня есть сценарий, я не могу отображать материалы на каждом этапе ---> бесполезно.
Доступ ко всему очень быстрый, все кристально чистое, названия функций хорошо подобраны. С python мне всегда нужно гуглить, искать на форумах или в stackoverflow .... полная трата времени.
PS: Наконец, то, что я ненавижу в Matlab: его цена
Отличный ответ! Думаю, стоит упомянуть еще об одном аспекте - отличная документация, в отличие от python или MSDN.
Ваш краткий пример кода напоминает мне людей, хвалящих Perl за обработку строк: он нечитаем. Я предпочитаю кодировать функции вокруг операций, которые мне нужно выполнять часто, и повторно использовать эти функции. В качестве бонуса это позволяет другим программистам использовать мои функции, потому что код действительно читается.
Matlab использовался в моем курсе численного анализа. Полиномиальная интерполяция и метод наименьших квадратов были парочкой тем, затронутых в этом курсе, если вам нужны примеры того, что находится в таком курсе. Maple, напротив, был для символьных вычислений и немного отличался, поскольку в этом классе мы пытались поддерживать точность, позволяя квадратным корням и другим константам, таким как pi или e, оставаться в ответе.