⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinlog.cpp

📁 matlab实用教程
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -