c语言调用matlab
2016-03-30 22:02
357 查看
很多种方法啊,我知道啊
可是我的matlab激活不彻底,无法直接编译成dll、lib
让别人帮忙编译,结果32位和64位,平台又不对
所以最好用的matlab engine
库目录增加:C:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft
然后是新增64位平台
这是一个matlab生成dll的文章,里面环境配置说的很清楚
百度文库的文章,将如何用引擎的
不过啊,这个要保证你的matlab要完整了
有输入代入matlab,然后输出传回c
其实就感觉就是传值啊
进入m文件文件夹,然后将要用的变量保存到命名空间
然后调用函数
最后回传
也折腾了我快一天了
可是我的matlab激活不彻底,无法直接编译成dll、lib
让别人帮忙编译,结果32位和64位,平台又不对
所以最好用的matlab engine
环境配置
包含目录增加:C:\Program Files\MATLAB\R2012b\extern\include库目录增加:C:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft
然后是新增64位平台
这是一个matlab生成dll的文章,里面环境配置说的很清楚
代码
我用的还是engine百度文库的文章,将如何用引擎的
#include <stdlib.h> #include<stdio.h> #include "engine.h" #include<string.h> #include<math.h> #pragma comment(lib,"libeng.lib") #pragma comment(lib,"libmx.lib") #define TEST_SIZE 192 #define RESULT_SIZE 96 void SAE_MATLAB(double * frame,double * result) { Engine *ep; //定义Matlab引擎指针。 int i; mxArray *test_x = mxCreateDoubleMatrix(1,TEST_SIZE, mxREAL); //matlab 数组 test_x if (!(ep=engOpen(NULL))) //测试是否启动Matlab引擎成功。 { printf("Can't start Matlab engine!\n"); } else printf("success\n"); memcpy(mxGetPr(test_x), frame, TEST_SIZE*sizeof(double)); //将数组frame复制到mxarray数组test_x中。 engEvalString (ep, "cd E:\\SAE_MATLAB"); //进入m文件所在文件夹 engPutVariable(ep, "test_x",test_x); //将mxArray数组test_x写入到Matlab工作空间,命名为test_x。 engEvalString (ep, "result=sae_c(test_x)"); memcpy(result,mxGetPr(engGetVariable(ep,"result")), RESULT_SIZE*sizeof(double)); //将result结果存到result数组中。 engClose(ep); } int main() { int i; double test_x[TEST_SIZE]; double test_y[RESULT_SIZE]; for(i=0;i<TEST_SIZE;i++) { test_x[i]=(i+2.0)/200; } SAE_MATLAB(test_x,test_y); return 0; }
不过啊,这个要保证你的matlab要完整了
有输入代入matlab,然后输出传回c
其实就感觉就是传值啊
进入m文件文件夹,然后将要用的变量保存到命名空间
然后调用函数
最后回传
也折腾了我快一天了
相关文章推荐
- 互信息的数学解释以及matlab编程
- matlab max/min函数
- MATLAB中的svd与svds
- matlab 结构体struct
- Seven More Languages in Seven Weeks (读书笔记):Julia
- Matlab研究分析Gabor滤波器
- matlab进度条
- ubuntu下安装matlab步骤
- ubuntu下安装matlab
- 【学习笔记】matlab中 pushbutton的buttondownfcn和callback函数有什么区别?
- Matlab绘图-很详细,很全面
- fastica matlab 转载
- 如何设置Matlab的默认属性?
- 将C/C++程序的变量数据导入到MATLAB中的方法!
- 七中滤波方法测试matlab实现
- matlab 3D绘图详解
- Matlab中数据的存储方式
- Matlab中数据的存储方式
- matlab2015a xcode7 找不到sdk问题
- 最大间隔多超平面分类器(多线性SVM分类器)介绍及Matlab实现