Question

Quelqu'un sait-il une ressource où nous pouvons obtenir GRATUIT bibliothèques C ++ pour les fonctions MATLAB? Par exemple, les problèmes d'algèbre linéaire peuvent être résolus en utilisant LAPACK et BLAS.

En outre, Matlab dans un projet .NET est hors de question - je parle des implémentations C ++ directe des fonctions MATLAB® populaires (je ne sais pas quelles fonctions j'ai besoin en C ++ encore, mais les fonctions utilisées ne vont pas à être ésotériques).

Toutes les suggestions sur ces ressources?

Était-ce utile?

La solution

Je ne l'ai jamais entendu parler d'un port complet de fonctionnalités de Matlab pour C ++. Cela étant dit, presque tout ce que Matlab n'existe dans une bibliothèque C ++ / C quelque part, un peu du haut de ma tête:

  • LAPACK, BLAS, vous avez déjà mentionné ces derniers, et il y a quelques bonnes mises en œuvre, le plus notable (gratuit) étant un fftw
  • Il y a des tas de bibliothèques d'images open source rapide là-bas, à savoir. interpolation, filtrage.
  • Il y a de très bonnes bibliothèques de matrice POO là-bas,

Autres conseils

Je aime aussi

Au-delà, votre question initiale est pas vraiment assez spécifique pour une meilleure pointeurs.

Désolé pour faire revivre une vieille question, mais je travaille actuellement sur une open source C ++ bibliothèque qui répond exactement à cette question:

KeyCpp est un C ++ open source bibliothèque qui fournit une syntaxe semblable à Octave MATLAB® / à plusieurs méthodes numériques utiles et aussi des fonctionnalités de traçage. Actuellement, il existe des fonctions pour eig, ode45, fft, linsolve, svd, interp1, plot, et bien d'autres fonctions de Matlab commun.

Bien qu'il existe d'autres (très bien) les bibliothèques qui offrent un grand nombre de ces fonctions (telles que Armadillo, Eigen, etc.), la plupart ne sont pas complètes bibliothèques numériques et la plupart de leur syntaxe est différente de la syntaxe de Matlab. Alors que KeyCpp est pas encore une bibliothèque numérique complète (mais améliore tout le temps!), La syntaxe est aussi proche de Matlab est comme le langage C ++ permet.

Dans KeyCpp, pour tracer les vecteurs t et y nous utilisons la syntaxe suivante: (Go ici pour un exemple plus vaste)

#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;
}

Sortie de terrain de l'exemple.

La fonctionnalité de la bibliothèque KeyCpp tire parti de LAPACK, Gnuplot, et odeint (de poussée). Voici les projets open source ont été incorporés dans cette bibliothèque. FFT Kiss, Gnuplot-cpp

Doxygen pour la plupart des fonctions se trouve

Au-delà des bonnes suggestions déjà donnés, vous pouvez aussi être en mesure de lever le code dont vous avez besoin à partir du code source de Octave ou Scilab . Ces deux éléments ont permis de style GPL, mais, ce qui ne peut pas répondre à vos besoins.

Lire la documentation Matlab très soigneusement et ont un coup de coude autour des DLL et d'autres composants, il installe sur vos disques durs. Je pense que vous constaterez que Matlab utilise une version de BLAS pour ce BLAS fait, peut-être aussi LAPACK et d'autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top