Для чего MATLAB хорош? Почему это так используется университетами? Когда это лучше, чем Python? [закрытый]

Вам нужно создать такую ​​структуру:

public class Friends
{

    public List<FacebookFriend> data {get;set;}
}

public class FacebookFriend
{

    public string id {get;set;}
    public string name {get;set;}
}

Тогда вы должны иметь возможность сделать:

Friends facebookFriends = new JavaScriptSerializer().Deserialize<Friends>(result);

Имена моих классов - всего лишь пример. Вы должны использовать правильные имена.

Добавление образца теста:

string json=
    @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}";


Friends facebookFriends = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Friends>(json);

foreach(var item in facebookFriends.data)
{
   Console.WriteLine("id: {0}, name: {1}",item.id,item.name);
}

Производит:

id: 518523721, name: ftyft
id: 527032438, name: ftyftyf
id: 527572047, name: ftgft
id: 531141884, name: ftftft
53
задан Peter Mortensen 13 October 2009 в 07:24
поделиться

20 ответов

Adam только частично прав. Многие, если вообще, математики никогда не будут касаться его. Если существует компьютерный инструмент, используемый вообще, это будет чем-то как Mathematica или Клен . Технические отделы, с другой стороны, часто полагаются на него и существуют определенно полезные вещи для некоторых прикладных математиков. Это также используется в большой степени в промышленности в некоторых областях.

Что-то, что необходимо понять о MATLAB, - то, что он начался как обертка на библиотеки Fortran для линейной алгебры. В течение долгого времени это имело отношение, из которого "весь мир является массивом, удваивается (плавает)". Как язык, это выросло очень органически, и существуют некоторые дефекты, которые очень испеклись в, если Вы смотрите на него так же, как на язык программирования.

Однако при рассмотрении его как среды для того, чтобы выполнить в определенных типах исследования это имеет некоторые реальные преимущества. Это почти столь хорошо, как это добирается для того, чтобы сделать линейную алгебру с плавающей точкой. Нотация проста и мощна, реализация быстро и доверяла. Это очень хорошо в генерации графиков и других интерактивных задач. Существует большое количество 'панелей инструментов' с хорошим кодом для конкретных задач, которые доступны. Существует многочисленное сообщество пользователей, которые совместно используют числовые коды (Python + , NumPy ничего не имеет в той же лиге, по крайней мере, еще)

, Python, бородавки и все, является намного лучшим языком программирования (как многие другие). Однако это - приблизительно одно десятилетие позади с точки зрения инструментов.

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

Это - паршивый выбор для общего языка программирования; это является изворотливым, медленным для многих задач (необходимо векторизовать вещи получить эффективные коды), и не легкий интегрироваться с внешним миром. С другой стороны, для вещей это способно, это очень очень хорошо. Очень немного вещей выдерживают сравнение. Существует компания с разумной поддержкой и кто знает, сколько годы человека помещали в него. Это может иметь значение в промышленности.

Строго рассмотрение Вашего Python по сравнению со сравнением MATLAB, они - главным образом различные инструменты для различных заданий. В областях, где они действительно накладываются немного, трудно сказать, что лучший маршрут пойти (во многом зависит от того, что Вы пытаетесь сделать). Но главным образом Python не весь настолько хорош в базовых преимуществах MATLAB, и наоборот.

77
ответ дан Eric O Lebigot 7 November 2019 в 08:14
поделиться

Первое Преимущество Двигателя . Matlab был вокруг с конца 1970-х. Python пришел позже, и библиотеки, которые делают его подходящим для задач типа Matlab, приехали еще позже. Люди привыкли к Matlab, таким образом, они используют его.

2
ответ дан Andru Luvisi 7 November 2019 в 08:14
поделиться

Я думаю, что Вы ответили на свой собственный вопрос, когда Вы отметили, что Matlab является "классным для работы с матрицами и выводящимися на печать вещами". Любое приложение, которое требует большого количества матричной математики и визуализации, вероятно, будет самым легким сделать в Matlab.

Однако синтаксис Matlab чувствует себя неловким и показывает возраст языка. Напротив, Python является намного более хорошим языком программирования общего назначения и, с правильными библиотеками может сделать большую часть того, что делает Matlab. Однако Matlab всегда будет иметь более краткий синтаксис, чем Python для векторного и матричного управления.

, Если большая часть Вашего программирования включит эти виды манипуляций, такой как в обработке сигналов и некоторых статистических методах, то Matlab будет лучшим выбором.

3
ответ дан Mark Reid 7 November 2019 в 08:14
поделиться

Прошло некоторое время, так как я использовал Matlab, но из памяти это действительно предоставляет (хотя дополнительные плагины) способности генерировать источник, чтобы позволить Вам понимать свой алгоритм на DSP.

, Так как Python является языком программирования общего назначения нет никакой причины, почему Вы не могли сделать всего в Python, который можно сделать в matlab. Однако matlab действительно обеспечивает много других инструментов - например, очень широкий спектр dsp функций, широкий спектр функций домена S и Z.

Все они могли быть рукой, кодированной в Python (так как это - язык общего назначения), но если все, что Вы после результатов, возможно, тратит деньги на Matlab, более дешевая опция?

Эти функции были также настроены для производительности. например, документация для Numpy определяет, что их преобразование Фурье оптимизировано для питания 2 наборов данных точки. Поскольку я понимаю, что Matlab был записан для использования самого эффективного преобразования Фурье для удовлетворения размеру набора данных, не просто питанию 2.

редактирование: О, и в Matlab можно произвести некоторых сенсационных взгляд графики очень легко, который важен, когда Вы представляете свои данные. Снова, конечно, не невозможное использование других инструментов.

3
ответ дан Andrew Edgecombe 7 November 2019 в 08:14
поделиться

Одной причиной MATLAB популярен у университетов, является та же причина, много вещей популярно у университетов: существует много преподавателей, знакомых с ним, и это довольно устойчиво.

я говорил с большим количеством людей, которые особенно интересуются возникающей способностью MATLAB насладиться GPU вместо того, чтобы работать последовательно. Используя Python в школе градиента, я вид желания у меня было облизывание для работы с MATLAB в этом случае. Это уверенный сделало бы вычисления векторного пространства бризом.

4
ответ дан zellus 7 November 2019 в 08:14
поделиться

MATLAB БЫЛ оберткой вокруг обычно доступных библиотек. И во многих случаях это все еще. Когда Вы добираетесь до больших наборов данных, это имеет много дополнительной оптимизации, включая исследование и специальные типичные проблемы преобразования регистра (уменьшающий до разреженных матриц, где полезный, например), и обрабатывающий пограничные случаи. Часто, можно отправить проблему в стандартной форме к общей функции, и это определит лучший базовый алгоритм для использования на основе данных. Для маленького N все алгоритмы быстры, но MATLAB делает определение оптимального алгоритма надуманным вопросом.

Это записано кем-то, кто ненавидит MATLAB и попытался заменить его из-за проблем интеграции. От Вашего вопроса Вы упоминаете, что получили MATLAB 5 и использовали его для курса. На том уровне Вы могли бы хотеть посмотреть Октава , реализация с открытым исходным кодом с тем же синтаксисом. Я предполагаю, что это - до MATLAB 5 уровней к настоящему времени (я только играю вокруг с ним). Это должно позволить Вам "сдавать свой экзамен". Для пустой функциональности MATLAB это, кажется, близко. Этому недостает поддержки панели инструментов (который, снова, главным образом служит, чтобы повторно сформулировать вызовы функции к формам, знакомым инженерам в поле, и выбирает правильный базовый алгоритм для использования).

4
ответ дан Peter Mortensen 7 November 2019 в 08:14
поделиться

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

, К сожалению, у Вас не будет большой возможности использовать их в учебной среде.

4
ответ дан John Mulder 7 November 2019 в 08:14
поделиться

Кажется, чистая инерция. Где это используется, все слишком заняты для изучения IDL или numpy в достаточных деталях для переключения, и не хотят переписывать хорошие рабочие программы. К счастью это не строго верно, но достаточно верно в достаточном количестве мест, что Matlab будет около долгого времени. Как Фортран (в активном использовании, где я работаю!)

5
ответ дан DarenW 7 November 2019 в 08:14
поделиться

MATLAB является фантастическим инструментом для

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

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

6
ответ дан Peter Mortensen 7 November 2019 в 08:14
поделиться

Между matplotlib+pylab и NumPy, я не думаю, существует много фактического различия между Matlab и Python кроме культурной инерции, как предложено @Adam Беллэйром.

6
ответ дан Aaron Maenpaa 7 November 2019 в 08:14
поделиться

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

6
ответ дан Adam Bellaire 7 November 2019 в 08:14
поделиться

Лично, я склонен думать о Matlab как об интерактивном матричном калькуляторе и выводящемся на печать инструменте с несколькими поддержкой сценариев, а не как законченный язык программирования как Python или C. Причина ее успеха состоит в том, что матричный материал и выводящий работу на печать из поля, и можно сделать несколько очень определенных вещей в нем с фактически никаким фактическим знанием программирования. Язык, как Вы указываете, чрезвычайно печальный для использования для большего количества задач общего назначения, такой как даже самая простая строковая обработка. Его синтаксис является изворотливым, и это не было создано с абстракциями, необходимыми для проектов приблизительно больше чем 100 строк в памяти.

я думаю причина, почему люди пытаются использовать Matlab, как серьезный язык программирования - то, что большинство инженеров (существуют исключения; мой градус находится в биоинженерии, и мне нравится программировать), ужасные программисты и очень не хотят программировать. Им преподают Matlab в колледже главным образом для матричной математики, и они изучают некоторое элементарное программирование как часть изучения Matlab, и просто предполагают, что Matlab достаточно хорош. Я не могу думать ни о ком, кого я знаю, кто знает любой язык помимо Matlab, но все еще использует Matlab для чего-либо кроме нескольких чистых приложений перемалывания чисел.

7
ответ дан 7 November 2019 в 08:14
поделиться

MATLAB, как упомянуто другими, силен в матричном управлении и был первоначально создан как расширение известного BLAS и библиотеки LAPACK, пользовавшиеся для линейной алгебры. Это взаимодействует через интерфейс хорошо с другими языками как Java и хорошо одобрено техническими и научными компаниями для его хорошо разработанных и зарегистрированных библиотек. Из того, что я знаю о Python и NumPy, в то время как они совместно используют многие фундаментальные возможности MATLAB, у них нет полной ширины и глубины возможностей с их библиотеками.

Лично, я использую MATLAB, потому что это - то, что я изучил в своей стажировке, это - то, что я использовал в школе градиента, и это - то, что я использовал в своем первом задании. У меня ничего нет против Python (или никакой другой язык). Это, что я используюсь также.

кроме того, существует другая бесплатная версия в дополнение к scilab, упомянутому Jim C от гну, названной Октава .

10
ответ дан Community 7 November 2019 в 08:14
поделиться

MATLAB является популярной и широко адаптированной частью сложного пакета программного обеспечения. Это была бы ошибка думать, что это - просто математическое программное обеспечение, так как это имеет широкий спектр "панелей инструментов". Я недавно использовал Matplotlib для графического изображения некоторых данных из базы данных, и это сделало задание, не нуждаясь во всех дополнительных свойствах MATLAB. Однако не может следовать сравнить Python и MATLAB в каждой ситуации. Как со всем остальным решение зависит от того, что необходимо сделать.

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

Другая хорошая вещь о MATLAB состоит в том, что это очень легко и быстро, чтобы сделать идеи разработки прототипа и испытания с помощью созданного в функциях панели инструментов. Например, это не прилагает усилий для импорта изображения, и вычислить это - гистограмма, или сделайте некоторую простую обработку на нем. Один недостаток MATLAB мог быть, это - скорость из-за своего интерпретируемого характера. Однако, если Вам действительно нужна скорость, чем он может принять решение реализовать протестированную логику в C/C++, и т.д.

Для дальнейшего сравнения с Python, я могу сказать, что MATLAB предоставляет полный пакет Вам, чтобы сделать Вашу работу без потребности оглядывания для внешних библиотек и реализации дополнительных функций.

Один последний момент о MATLAB, который я вижу, не упомянут в ответах, вот то, что это имеет очень мощное визуальное моделирование/среду симуляции, названное Simulink. Легче разработать и моделировать большие системы с Simulink.

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

12
ответ дан Peter Mortensen 7 November 2019 в 08:14
поделиться

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

я, вероятно, только использовал бы его для больших программ, если я мог бы использовать большое управление массивом/матрицей.

Вы не должны волноваться о IDE так же как в более формальных пакетах, таким образом, это легче для студентов без большого программирования опыта взять.

13
ответ дан Lance Roberts 7 November 2019 в 08:14
поделиться

Держите все. Когда прошлый раз, Вы программировали свой калькулятор для игры Тетриса? Вы на самом деле думали, что могли записать что-нибудь, что Вы хотите в тех 128k RAM? Вероятно, нет. MATLAB не для программирования, если Вы не имеете дело с огромными матрицами. Это - калькулятор построения графика, который Вы выкрикиваете, когда у Вас есть Мегабайты к Гигабайтам данных, чтобы уплотнить и/или вывестись на печать. Изучите просто основной материал, но также и не уничтожайте себя пытающийся заставить Python быть калькулятором построения графика.

Вы быстро получите ощущение того, когда Вы захотите уплотнить, вывести на печать или исследовать в MATLAB и когда Вы хотите иметь весь тот Python предложения. Много инженеров обращается к пред и обработка сообщения в Python или Perl. Иногда даже просто обратившись к MATLAB для твердых битов.

Они - такие совершенно другие инструменты, которые необходимо изучить их основные преимущества сначала, не пытаясь заменить один другим. Предоставленный для того, чтобы сэкономить деньги я или использовал бы Октаву или сэкономил бы на простоте и учился бы работать с разреженными матрицами в Perl или Python.

15
ответ дан dlamblin 7 November 2019 в 08:14
поделиться

Я использовал matlab много лет в моем исследовании. Это является большим для линейной алгебры и имеет большой набор правильно написанных панелей инструментов. Новые версии начинают продвигать его в то, чтобы быть ближе к языку общего назначения (лучшие оптимизаторы, намного лучшая объектная модель, более богатые правила обзора, и т.д.).

Это прошлым летом, у меня было задание, где я использовал Python + numpy вместо Matlab. Я наслаждался изменением темпа. Это - "реальный" язык (и все, что влечет за собой), и это имеет некоторые большие числовые функции как широковещательная передача массивов. Мне также действительно нравится ipython среда.

Вот некоторые вещи, которые я предпочитаю о Matlab:

  • непротиворечивость: MathWorks потратил большое усилие, заставляющее панели инструментов смотреть и работать друг как друг. Они не сделали идеального задания, но это - один из лучших, я видел кодовую базу, это - старые десятилетия.
  • документация: я нахожу очень печальным выяснить некоторые вещи в numpy и/или Python, потому что качество документации является пятнистым: некоторые вещи документируются очень хорошо, некоторые нисколько. Является часто самым печальным, когда я вижу вещи, которые появляются имитатору Matlab, но не делают вполне , работают то же. Способность захватить источник неоценима (для ярмарки, большая часть поставки панелей инструментов Matlab с источником также)
  • компактность: для того, что я делаю, синтаксис Matlab часто более компактен (но не всегда)
  • импульс: у меня есть слишком много кода Matlab для изменения теперь

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

34
ответ дан Mr Fooz 7 November 2019 в 08:14
поделиться

Я полагаю, что у Вас есть очень положительная сторона, и это - то, которое было повышено в компании, где я работаю. Компания ограничена в, он - способность применить matlab из-за включенных затрат на лицензирование. Один разработчик доказал, что Python был очень подходящей заменой, но он упал на неосведомленные уши потому что владельцам тех ушей...

  1. Никто в компании не знал Python, хотя многие из нас хотели использовать его.
  2. MatLab имеет имя, компанию и экспертную группу позади нее для решения любых проблем.
  3. были некоторые (но не много) проектов MatLab прежней версии, которые должны будут быть переписаны.

, Если это стоит ВЈ10,000 (??) это, должно стоить того!!

я с Вами здесь. Python является очень хорошей заменой для MatLab.

я должен указать, что мне сказали использование компании, возможно, 5% к 10% возможностей MatLabs, и это - основание для моего соглашения с исходным плакатом

6
ответ дан Derek Smyth 7 November 2019 в 08:14
поделиться

Я знаю, что этот вопрос старый, и поэтому, возможно, больше не смотрел, но чувствовал необходимость прокомментировать. Как аэрокосмический инженер Технологического института Джорджии, я могу сказать, сомневается, что MATLAB потрясающий. Вы можете получить это быстро интерфейс с таблицами Excel, чтобы получать данные о как высоко и быстро летают ракеты, как влияет ветер те же самые ракеты и какое значение имеют разные двигатели. За пределами ракетная техника, аналогичные концепции используются для автомобилей, грузовиков, самолет, космический корабль и даже легкая атлетика. Вы можете втянуть большие объемы данных, манипулируйте ими и убедитесь, что ваши результаты такие, какими они должны быть. В случае, если что-то выкл, вы можете добавить разрыв строки, где возникает ошибка, для отладки ваша программа без необходимости перекомпилировать каждый раз, когда вы хотите для запуска вашей программы. Он медленнее некоторых других программ? Ну, технически. Я уверен, если ты хочешь набрать номер он отлично подходит для графического процессора NVIDIA, вероятно будет быстрее, но это требует гораздо больше усилий с более сложной отладкой.

Как общий язык программирования, MATLAB слаб. Это не предназначен для работы с Python, Java, ActionScript, C / C ++ или любой другой язык общего назначения. Это предназначено для ниша инженерии и математики, как следует из названия, и делает это фантастически.

4
ответ дан 7 November 2019 в 08:14
поделиться

Matlab хорошо справляется с вычислением чисел. Также матрица и матричная манипуляция. Он имеет множество полезных встроенных библиотек (зависит от версии). Я думаю, что его проще использовать, чем python, если вы собираетесь вычислять уравнения.

2
ответ дан 7 November 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: