Ответ 1
Вероятно SciPy, который представляет собой набор библиотек для Python, которые довольно конкурентоспособны с Matlab. Для Python существуют различные компиляторы, поэтому вы можете сгенерировать библиотеки DLL с некоторой работой.
Я ищу среду, которая выполнит все условия ниже:
Он не должен быть совместим с Matlab.
Вероятно SciPy, который представляет собой набор библиотек для Python, которые довольно конкурентоспособны с Matlab. Для Python существуют различные компиляторы, поэтому вы можете сгенерировать библиотеки DLL с некоторой работой.
Это зависит от того, что вы собираетесь делать. Для простых матричных вычислений оставайтесь с С# и используйте бесплатную библиотеку .NET.NET, такую как Math.NET Numerics (google также содержит некоторые другие). Я использовал его в прошлом году, и он имеет такую же хорошую производительность, как MATLAB, он также использует LAPACK.
Я никогда не использовал .NET-диаграммы для построения самого себя, но google показывает, что есть некоторые бесплатные реализации (оба winfroms и wpf).
См. также библиотека линейных алгебр С#, Высокопроизводительная математическая библиотека для .NET/С# и Java и Есть ли библиотека вычислений алгебр для .NET?
R - это очень мощный математический язык, который является бесплатным.
Он может быть подключен к различным языкам через statconn (загружается здесь). Я лично использовал его через statconn в С# и нашел, что это относительно легко.
ILNumerics будет идеально соответствовать вашим потребностям. Он поставляется с тем же синтаксисом, что и matlab, является библиотекой .NET 4.0, предлагает поддержку построения и очень быстро! Быстрее, чем matlab или python или что-то еще. Я не эксперт в Fortran или С++, но мои прежние попытки работают медленнее на этих языках!
Единственная проблема: ее не бесплатно. Поскольку я предоставил им некоторые отзывы, они предложили мне бесплатную лицензию. На веб-сайте вы также найдете намек на академический материал. Не знаю, если они свободны или только за небольшие деньги. Вы можете спросить об этом.
Octave
- но я не думаю, что вы можете сделать dll. Альтернативой является кодирование того, что вы хотите от MATLAB в С#. Получите подсказки от Numericical Recipies, если вы можете читать С++ или FORTRAN.
Я бы пошел с маршрутом python, как было предложено выше. Вы можете пойти с SciPy или даже попробовать sage в зависимости от ваших потребностей. Для создания расширений с помощью python существует множество интерактивных справочных материалов. Кроме того, вы можете быстро протестировать свои DLL, используя библиотеку python ctypes, что довольно удивительно, поскольку позволяет как неявное, так и явное связывание с dlls, И наоборот, Matlab допускает неявное связывание. Надеюсь, что это поможет решению.
Отъезд Sho, который объединяет .NET с IronPython в наборе инструментов интерактивной среды данных: http://research.microsoft.com/en-us/projects/sho/
Существует даже информация о том, как использовать Sho с F # здесь: http://msdn.microsoft.com/en-us/library/hh304371(v=vs.100).aspx