Функции MATLAB в C ++ [закрыто]

Кто-нибудь знает ресурс, где мы можем получитьСВОБОДНО C ++ библиотеки для функций MATLAB? Например, задачи линейной алгебры могут быть решены с использованием LAPACK и BLAS.

Кроме того, о MATLAB в .NET-проекте не может быть и речи - яя говорю о прямых реализациях C ++ популярных функций MATLAB (я неЯ не знаю, какие функции мне нужны в C ++, но используемые функции не будут эзотерическими).

Любые предложения о таких ресурсах? Я '

Ответы на вопрос(5)

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

броненосец (шаблонная библиотека C ++)собственный (другая шаблонная библиотека C ++)NEWMAT (старая, но хорошо протестированная матричная библиотека C ++)

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

 Dirk Eddelbuettel08 февр. 2012 г., 01:55
Согласовано!! Поскольку я написал ответ, я на самом делепортирована» немного кода Matlab с использованием Armadillo, что делает его довольно простым. Да, и намного быстрее, поскольку это C ++.
 nkint08 февр. 2012 г., 01:54
+1 для броненосца: преобразование синтаксиса matlab в c ++:arma.sourceforge.net/docs.html#syntax

и другие компоненты, которые он устанавливает на жесткие диски. Я думаю ты'Вы обнаружите, что Matlab использует версию BLAS для того, что делает BLAS, возможно, также LAPACK и другие.

Решение Вопроса

я C ++. Тем не менее, почти все, что делает Matlab, существует где-то в библиотеке C / C ++, некоторые из них находятся у меня в голове:

LAPACK, BLAS, вы уже упомянули об этом, и есть несколько хороших реализаций, самая известная (бесплатная)АТЛАС.БПФ реализован в Matlab черезFFTWбиблиотекаЕсть множество быстрых библиотек изображений с открытым исходным кодом, т.е. интерполяция, фильтрация.Есть действительно хорошие библиотеки ООП-матрицы,увеличение имеет хороший

После этого хорошо выясните, что вам нужно, и есть большая вероятность, что кто-то реализовал это в C / C ++.

 DeusAduro25 авг. 2009 г., 20:33
scimath.com имеет довольно неплохую функциональность, не только griddata, но с 3-й интерполяцией вы можете довольно легко реализовать функциональность griddata.
 Jacob25 авг. 2009 г., 20:28
+1 за буст матрицу. Есть ли у вас пакеты интерполяции, которые могут выполнять функции, аналогичные griddata?

но в настоящее время я работаю над библиотекой C ++ с открытым исходным кодом, которая точно отвечает на этот вопрос:

KeyCpp является библиотекой C ++ с открытым исходным кодом, которая обеспечивает синтаксис, подобный MATLAB / Octave, нескольким полезным численным методам, а также некоторым функциям построения графиков. В настоящее время есть функции для,,,,,,eigode45fftlinsolvesvdinterp1plotи многие другие общие функции MATLAB.

Хотя есть и другие (очень хорошие) библиотеки, которые предоставляют многие из этих функций (такие как Armadillo, Eigen и т. Д.), Большинство из них не являются полными числовыми библиотеками, и большая часть их синтаксиса отличается от MATLAB 'Синтаксис. Хотя KeyCpp также еще не является полной числовой библиотекой (но постоянно совершенствуется!), Синтаксис максимально приближен к MATLAB 'S, как позволяет язык C ++.

В KeyCpp, чтобы построить векторыt а такжеy мы используем следующий синтаксис: (GoВот для более обширного примера)

#include <iostream>
#include <keycpp keycpp.h="">
using namespace keycpp;

int main(int argc, char** argv)
{
    // Lets create some data: y = sin(t)
    std::vector<double> t = linspace(-pi,pi,100);
    std::vector<double> y = sin(t);

    Figure h;
    h.plot(t,y,"-b");
    h.grid_on();
    h.legend({"Series 1"});
    h.title("Example Plot");
    h.xlabel("time");
    h.ylabel("y");

    return 0;
}
</double></double></keycpp></iostream>

Функциональность библиотеки KeyCpp использует преимущества LAPACK, Gnuplot и odeint (от Boost). Следующие проекты с открытым исходным кодом были включены в эту библиотеку: Kiss FFT, Gnuplot-cpp.

Документация Doxygen для большинства функций находитсяВот

Ваш ответ на вопрос