📄 mat1.asv
字号:
///////////////// Head /////////////////////////////////////////
#include "mex.h"
#include "mat.h"
/////////////////// C Program //////////////////////////////////////////
void OutPut(MATFile *fp)
{ mxArray *m_str,*m_P; int i,j;
double rx[]={1,2,3,4,5,6}; double ix[]={6,5,4,3,2,1};
double ry[]={1,1,1,1,1,1}; double iy[]={6,6,6,6,6,6};
m_P=mxCreateDoubleMatrix(2,6,mxCOMPLEX);///// 创建mxArray对象
for(i=0;i<1;i++)for(j=0;j<6;j++)
{*(mxGetPr(m_P)+j*2+i)=rx[j];*(mxGetPi(m_P)+j*2+i)=ix[j];}
for(i=1;i<2;i++)for(j=0;j<6;j++)
{*(mxGetPr(m_P)+j*2+i)=ry[j];*(mxGetPi(m_P)+j*2+i)=iy[j];}
matPutVariable(fp,"m_P",m_P); /////将mxArray对象写入mat
m_str=mxCreateString(" mat File"); //// 创建mxArray对象
matPutVariable(fp,"m_str",m_str); /////将mxArray对象写入mat
mxDestroyArray(m_str);mxDestroyArray(m_P); ///内存释放
}
////////////////// mexFunction /////////////////////////////////////
void mexFunction(int nlhs,mxArray *plhs[],int nrhs, mxArray *prhs[])
{ MATFile *fp; int buf;
mxChar *FileName;
////////////////// Get data from prhs[]
if(nrhs!=1||mxGetClassID(prhs[0])!=mxCHAR_CLASS)
mexErrMsgTxt("Please Input a string to be the MatFile name\n");
buf=(mxGetM(prhs[0])*mxGetN(prhs[0]))+1;
FileName=mxCalloc(buf,sizeof(char));
mxGetString(prhs[0],FileName,buf);
if((fp=matOpen(FileName,"w"))==NULL)mexErrMsgTxt("Cant't Open MATFile");
OutPut(fp);
mexPrintf("\n The '%s.mat' mat_File is created successfully!\n",FileName);
mxFree(FileName);
matClose(fp);
}
/*
rP=mxCalloc(nrhs,sizeof(double));///////////内存在管理机制为Matlab机制
for(i=0;i<nrhs;i++)rP[i]=mxGetScalar(prhs[i]);
///////////////// 调用C程序
sum=OutPut(nrhs,rP);
//////////////// 进行数据类型转换,并存入 plhs[] 返回Matlab
nlhs=nrhs;
plhs[0]=mxCreateDoubleMatrix(1,nlhs,mxREAL);
lP=mxGetPr(plhs[0]);
for(i=0;i<nlhs;i++)lP[i]=i*sum;
mxFree(rP); ///////////内存在管理机制为Matlab机制
mxFree(lP);
}
///////////////////结束////////////////////////////////////////////////////
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -