I'm wondering if there any c/c++ libraries out there that imitate the functuonality that matlab offers (neglecting all the toolboxes of course) and if so, how they compare to matlab in both simplicity and speed?
For standard linear algebra, Armadillo essentially has "ease of use" a la Matlab as a stated goal. Quoting from the main page:
Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK, or one of its high performance drop-in replacements (such as MKL or ACML).
This library is useful if C++ has been decided as the language of choice (due to speed and/or integration capabilities), rather than another language like Matlab ® or Octave. It is distributed under a license that is useful in both open-source and commercial contexts.
It is a pretty decent C++ library.
There are several libraries that provide basic linear algebra (BLAS) implementations. However, I think you'll find matlab has so many convient functions that get use very frequently you will have a hard time porting your matlab over to c+++ even with a nice BLAS library.
Check out GNU Octave. It provides a runtime that closely mirrors matlab. It also allows you to embed and extend the runtime within your C++ application
Since you haven't mentioned anything regarding the licensing of the library, you may want to look at this:
http://www.mathworks.com/products/matlab-coder/
精彩评论