matlab eigen学习中。可以直接通过engEvalString发送命令,由matlab自己创建数据,自己做图。c++只是唤醒作用。
代码:
/*
* example3.cpp
*
* This is an example showing standard markers available in MATLAB® plots.
* http://www.mathworks.com/matlabcentral/fileexchange/35231-matlab-plot-gallery-standard-plot-markers/content/html/Standard_Plot_Markers.html
*/
#include
#include
#include "engine.h"
int main() {
Engine *ep; //定义Matlab引擎指针。
if (!(ep=engOpen("\0"))) //测试是否启动Matlab引擎成功。
{
std::cout<< "Can't start MATLAB engine"<<:endl>
return EXIT_FAILURE;
}
// 向matlab发送命令。在matlab内部自己去产生即将绘制的曲线上的数据。
// Generate some data using the besselj function
engEvalString(ep, "x = 0:0.2:10;y0 = besselj(0,x);y1 = besselj(1,x);y2 = besselj(2,x);y3 = besselj(3,x);y4 = besselj(4,x);y5 = besselj(5,x);y6 = besselj(6,x);");
// Plot the points from the Bessel functions using standard marker types figure
engEvalString(ep, "plot(x, y0, 'r+', x, y1, 'go', x, y2, 'b*', x, y3, 'cx', x, y4, 'ms', x, y5, 'yd', x, y6, 'kv');");
//Use cin.get() to make sure that we pause long enough to be able to see the plot.
std::cout<
std::cin.get();
return EXIT_SUCCESS;
}
编译,运行:
g++ example3.cpp -o example3 -leng -lmx
./example3
Hit any key to exit!
运行结果: