<thead id="xjx1f"></thead>
      <sub id="xjx1f"></sub>

        <address id="xjx1f"></address>

            Matlab与C++混合编程 2--在C++中使用Matlab固有命令

            直接在Visual Studio中运行Matlab固有命令

            #include <iostream>
            #include"engine.h" // 添加matlab引擎库的头文件
            
            //PATH: D:\Program Files\MATLAB\MATLAB Runtime\v901\runtime\win64
            // 包含目录: D:\Program\MATLAB\R2016a\extern\include
            // 库目录: D:\Program\MATLAB\R2016a\extern\lib\win64\microsoft
            // 附加依赖项: libmat.lib;libeng.lib;libmx.lib;
            #pragma comment(lib, "libeng.lib")
            #pragma comment(lib, "libmx.lib")
            #pragma comment(lib, "libmat.lib")
            
            
            using namespace std;
            
            int main()
            {
                Engine *ep;
                // 启动引擎
                if (!(ep = engOpen("\0")))
                {
                    fprintf(stderr, "\n打开Matlab引擎失败!\n");
                    return EXIT_FAILURE;
                }
                // 执行:
                int Nsample = 50;       //采样率50Hz,每秒50个点
                const double PI = 3.1415926;
                double *t = new double[Nsample];
                for (int i = 0; i <Nsample; i++)    //i是时间,i/N是每个采样点的时间间隔,t[i]=2*PI*t
                {
                    t[i] = i * 2 * PI / Nsample;
                }
                mxArray *T = NULL, *result = NULL;
                T = mxCreateDoubleMatrix(1, Nsample, mxREAL);   //新建Double型的矩阵,1行Nsample列
                memcpy((void *)mxGetPr(T), (void *)t, Nsample * sizeof(t[0]));  //把t中数据拷贝到T中
                // 把变量T存入Matlab工作区
                engPutVariable(ep, "X", T); //拷贝T到引擎中的X变量
            
                // 执行Matlab命令 ??
                engEvalString(ep, "Y=cos(X);");
                engEvalString(ep, "plot(X,Y);");
                engEvalString(ep, "title('y=cos(x)');");
                engEvalString(ep, "xlabel('x');");
                engEvalString(ep, "ylabel('y');");
                fgetc(stdin);
                // 清除对象,不能漏!
                mxDestroyArray(T);
                engEvalString(ep, "close;");
                // 关闭引擎,不能漏!
                engClose(ep);
            
                cout << "运行完成" << endl;
            
                return 0;
            }
            相关文章
            相关标签/搜索
            黄大仙精选资料一肖一码 颍上县| 洞口县| 阜城县| 长海县| 同江市| 诸暨市| 绥芬河市| 二连浩特市| 新巴尔虎右旗| 江津市| 绥江县| 杭锦旗| 阿尔山市| 扶沟县| 舟曲县| 灵丘县| 黑山县| 临海市| 大庆市| 萍乡市| 北辰区| 乡城县| 仙居县| 苗栗县| 南乐县| 顺平县| 京山县| 凯里市| 文山县| 天峻县| 公主岭市| 星子县| 泰兴市| 齐齐哈尔市| 章丘市| 定陶县| 崇仁县| http://fa.hz0j1r3vo.fun http://fa.hz0j0r1vo.fun http://fa.hz0j1r3vo.fun http://fa.hz0j2r3vo.fun http://fa.hz0j0r8vo.fun