matlab与C++混合编程(高手请进)

来源:百度知道 编辑:UC知道 时间:2024/05/29 21:41:23
我快崩溃了!要用VC读一个mat文件,但出现了太多问题,那位高手能解答,帮帮我啊……
matlab与C++混合编程的步骤是什么啊?编译器怎么配置?我用的是VS2005和Matlab7.0,好像不是很兼容。总是出现各种错误,如:

D:\extern\include\mat.h(131) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
D:\extern\include\mat.h(131) : error C2143: 语法错误 : 缺少“,”(在“*”的前面)
D:\extern\include\mat.h(155) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
D:\extern\include\mat.h(155) : error C2143: 语法错误 : 缺少“,”(在“*”的前面)
D:\extern\include\mat.h(169) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
D:\extern\include\mat.h(169) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
D:\extern\include\mat.h(172) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
D:\extern\include\mat.h(188) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
D:\extern\include\mat.h(188) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
D:\extern\include\mat.h(188) : error C443

源代码:
#include "D:\extern\include\mat.h"

void main() {
MATFile *pMF; // mat文件
mxArray *pA; // 矩阵指针
double *A; // 数据指针
int i, j;
// 打开一个test.mat文件,只写,如果不存在就新建,否则删除重建
pMF = matOpen("test.mat", "w");
// 新建一个12*4的矩阵只有实部(在MATLAB里矩阵都是复矩阵)
pA = mxCreateDoubleMatrix(12, 4, mxREAL);
// 给这个矩阵命名为x
mxSetName(pA, "x");
// 让指针Array指向这个矩阵的数据
A = mxGetPr(pA);
// 在VC里数组是按行排放的,在MATLAB里矩阵是按列排放的,)
for (i = 0; i < 12; i++)
for (j = 0; j < 4; j++)
A[j * 12 + i] = i + 0.001 * j;
// 将矩阵写到文件test内
matPutArray(pMF, pA);
// 释放矩阵空间
mxDestroyArray(pA);
// 关闭文件
matClose(pMF);
}

不要 .net ,用VC6+Matlab做的程序可能会好点