Альтернатива Matlab

Я ищу среду, которая выполнит все условия ниже:

  • является бесплатным или имеет бесплатную студенческую лицензию
  • позволяет создавать dll, которые могут использоваться в С# в Visual Studio 2010
  • имеет очень хорошую производительность при матричных вычислениях
  • имеет хорошую документацию или примеры/учебные пособия

Он не должен быть совместим с Matlab.

Ответ 1

Вероятно SciPy, который представляет собой набор библиотек для Python, которые довольно конкурентоспособны с Matlab. Для Python существуют различные компиляторы, поэтому вы можете сгенерировать библиотеки DLL с некоторой работой.

Ответ 2

Это зависит от того, что вы собираетесь делать. Для простых матричных вычислений оставайтесь с С# и используйте бесплатную библиотеку .NET.NET, такую ​​как Math.NET Numerics (google также содержит некоторые другие). Я использовал его в прошлом году, и он имеет такую ​​же хорошую производительность, как MATLAB, он также использует LAPACK.

Я никогда не использовал .NET-диаграммы для построения самого себя, но google показывает, что есть некоторые бесплатные реализации (оба winfroms и wpf).

См. также библиотека линейных алгебр С#, Высокопроизводительная математическая библиотека для .NET/С# и Java и Есть ли библиотека вычислений алгебр для .NET?

Ответ 3

R - это очень мощный математический язык, который является бесплатным.

Он может быть подключен к различным языкам через statconn (загружается здесь). Я лично использовал его через statconn в С# и нашел, что это относительно легко.

Ответ 4

ILNumerics будет идеально соответствовать вашим потребностям. Он поставляется с тем же синтаксисом, что и matlab, является библиотекой .NET 4.0, предлагает поддержку построения и очень быстро! Быстрее, чем matlab или python или что-то еще. Я не эксперт в Fortran или С++, но мои прежние попытки работают медленнее на этих языках!

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

Ответ 5

Octave - но я не думаю, что вы можете сделать dll. Альтернативой является кодирование того, что вы хотите от MATLAB в С#. Получите подсказки от Numericical Recipies, если вы можете читать С++ или FORTRAN.

Ответ 6

Я бы пошел с маршрутом python, как было предложено выше. Вы можете пойти с SciPy или даже попробовать sage в зависимости от ваших потребностей. Для создания расширений с помощью python существует множество интерактивных справочных материалов. Кроме того, вы можете быстро протестировать свои DLL, используя библиотеку python ctypes, что довольно удивительно, поскольку позволяет как неявное, так и явное связывание с dlls, И наоборот, Matlab допускает неявное связывание. Надеюсь, что это поможет решению.