接触到一个matalb的程序,关于数据输出这一块,因不会使用oracle,只好用c++生成.mat格式的文件,按照matlab程序里面要求,将数据生成相应的结构形式。
1.创建double类型的数组
代码:
MATFile *pmatFile = matOpen("D:\\test.mat","w");
int Num = VecData.size();
double *dparray = new double[Num*4];
for(int i = 0;i<Num;i++)
{
dparray[i] =VecData[i].id_1;
dparray[Num+i] =VecData[i].id_2;
dparray[Num*2+i] =VecData[i].id_3;
dparray[Num*3+i] =VecData[i].id_4;
}
mxArray *pmxarray = mxCreateDoubleMatrix(Num,4,maREAL);
if(pmxarray==NULL)
{
return;
}
memcpy_s((void*)mxGetPr(pmxarray),Num*4*sizeof(double),dparray,Num*4*sizeof(double));
matPutVariable(pmatFile,"DoubleArray",pmxarray);
delete dparray;
<