sinlog.cpp
来自「matlab实用教程」· C++ 代码 · 共 51 行
CPP
51 行
#include <iostream>
#include <math.h>
#include "engine.h"
using namespace std;
void main()
{
const int N = 50;
double x[N],y[N];
int j = 1;
// 计算数组x和y
for (int i=0; i<N; i++)
{
x[i] = (i+1);
y[i] = sin(x[i]) + j * log(x[i]);
j *= -1;
}
Engine *ep;
if (!(ep=engOpen(NULL)))
{
cout <<"Can't start MATLAB engine!" <<endl;
exit(1);
}
// 定义mxArray,为1行,N列的实数数组。
mxArray *xx = mxCreateDoubleMatrix(1,N, mxREAL);
mxArray *yy = mxCreateDoubleMatrix(1,N, mxREAL);
// 将数组x和y分别复制到mxarray数组xx、yy中。
memcpy(mxGetPr(xx), x, N*sizeof(double));
memcpy(mxGetPr(yy), y, N*sizeof(double));
engPutVariable(ep, "xx",xx);
engPutVariable(ep, "yy",yy);
// 向MATLAB引擎发送画图命令
engEvalString(ep, "plot(xx, yy); ");
engEvalString(ep, "title(' y = sin(x) ±log(x)');");
engEvalString(ep, "xlabel('x)');");
engEvalString(ep, "ylabel('y');");
// 销毁mxArray数组xx和yy
mxDestroyArray(xx);
mxDestroyArray(yy);
cout <<"Press any key to exit!" <<endl;
cin.get();
// 关闭 MATLAB 引擎。
engClose(ep);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?