有谁知道我们可以获得的资源免费用于MATLAB函数的C++库?例如,线性代数问题可以使用LAPACK和BLAS来解决。另外,.NET项目中的MATLAB不存在问题 - 我正在讨论流行的MATLAB函数的直接C++实现(我不知道我在C++中需要哪些函数,但所用的函数并不是要深奥)。在C++中的MATLAB函数
有关这些资源的任何建议?
有谁知道我们可以获得的资源免费用于MATLAB函数的C++库?例如,线性代数问题可以使用LAPACK和BLAS来解决。另外,.NET项目中的MATLAB不存在问题 - 我正在讨论流行的MATLAB函数的直接C++实现(我不知道我在C++中需要哪些函数,但所用的函数并不是要深奥)。在C++中的MATLAB函数
有关这些资源的任何建议?
请仔细阅读您的Matlab文档,并对安装在您的硬盘上的DLL和其他组件进行详细说明。我想你会发现Matlab使用BLAS的版本,可能还包括LAPACK和其他版本。
对不起,振兴一个老问题,但我目前工作的一个开源C++库,正是回答了这个问题:
KeyCpp是一个开源C++库,提供MATLAB /倍频程的语法来几个有用的数值方法和一些绘图功能。目前有功能eig
,ode45
,fft
,linsolve
,svd
,interp1
,plot
,和许多其他常见的MATLAB功能。
虽然还有其他(非常好的)库提供了许多这些功能(如Armadillo,Eigen等),但大多数并不是完整的数字库,它们的大部分语法与MATLAB的语法都不相同。虽然KeyCpp还不是一个完整的数值库(但它一直在改进!),但是它的语法与C++语言允许的MATLAB一样接近。
在KeyCpp,绘制矢量t
和y
我们使用的语法如下:(转到here了解更详尽的例子)
#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;
}
的KeyCpp库的功能需要的优势LAPACK,Gnuplot和odeint(来自Boost)。以下开源项目已被纳入此库:Kiss FFT,Gnuplot-cpp。
对于大部分功能Doxygen文档位于here
1升压矩阵。你有任何可以执行类似于griddata的函数的插值包吗? – Jacob 2009-08-25 18:28:39
http://www.scimath.com/有一些相当不错的功能,不是特别的griddata,但是通过3-d插值,你可以非常轻松地实现griddata功能。 – DeusAduro 2009-08-25 18:33:11