有谁知道我们可以获得免费的 MATLAB 函数 C++ 库的资源?例如,可以使用 LAPACK 和 BLAS 解决线性代数问题。
此外,.NET 项目中的 MATLAB 是不可能的——我说的是流行 MATLAB 函数的直接 C++ 实现(我不知道我在 C++ 中需要哪些函数,但使用的函数不会是深奥的) .
有关此类资源的任何建议?
有谁知道我们可以获得免费的 MATLAB 函数 C++ 库的资源?例如,可以使用 LAPACK 和 BLAS 解决线性代数问题。
此外,.NET 项目中的 MATLAB 是不可能的——我说的是流行 MATLAB 函数的直接 C++ 实现(我不知道我在 C++ 中需要哪些函数,但使用的函数不会是深奥的) .
有关此类资源的任何建议?
很抱歉重新提出一个老问题,但我目前正在开发一个开源 C++ 库,该库可以准确回答这个问题:
KeyCpp是一个开源 C++ 库,它为几种有用的数值方法和一些绘图功能提供了类似于 MATLAB/Octave 的语法。目前有用于eig
、ode45
、fft
、linsolve
、svd
、interp1
、plot
和许多其他常见 MATLAB 函数的函数。
虽然还有其他(非常好的)库提供了许多这些函数(例如 Armadillo、Eigen 等),但大多数都不是完整的数值库,并且它们的大部分语法与 MATLAB 的语法不同。虽然 KeyCpp 还不是一个完整的数值库(但一直在改进!),但其语法与 C++ 语言允许的 MATLAB 一样接近。
在 KeyCpp 中,要绘制向量t
,y
我们使用以下语法:(点击此处查看更广泛的示例)
#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 文档位于此处
仔细阅读您的 Matlab 文档,并了解它安装在硬盘上的 DLL 和其他组件。我想你会发现 Matlab 使用 BLAS 的一个版本来完成 BLAS 的工作,可能还有 LAPACK 和其他。