⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matdemo.c

📁 matlab 和c或者c++ 接口程序
💻 C
字号:
 #include<stdio.h>
#include"mat.h"
#include"matrix.h"
int matcreate(const char*file)
{MATFile *pmatfile;
mxArray *pa1,*pa2,*pa3;
double data1[9]={1,2,3,4,5,6,7,8,9};
double data2[9]={11,12,13,14,15,16,17,18,19};
printf("creating file %s....\n\n",file);
pmatfile=matOpen(file,"w");
if(pmatfile==NULL)
{printf("error creating file ");
		return(1);
}
pa1=mxCreateDoubleMatrix(3,3,mxREAL);
//mxSetName(pa1,"LDdata");
memcpy ((char*)(mxGetPr(pa1)),(char*) data1,3*3*sizeof(double));
pa2=mxCreateDoubleMatrix(3,3,mxREAL);
//mxSetName(pa2,"GDdata");
memcpy((char*)(mxGetPr(pa2)),(char*) data2,3*3*sizeof(double));
pa3=mxCreateString("we teach you use the mat function");
//mxSetName(pa3,"GSdata");
///write this data to mat files

matPutVariable(pmatfile,"LDdata",pa1);
matPutVariableAsGlobal(pmatfile,"GDdata",pa2);
matPutVariableAsGlobal(pmatfile,"GSdata",pa3);
mxDestroyArray(pa1);
mxDestroyArray(pa2);
mxDestroyArray(pa3);
if(matClose(pmatfile)!=0)
{printf("Error closingfile ");
return(1);
}

}


int matread(const char* file)
{
 MATFile* pmat;
 char * * dir;
 int ndir;
 int i;
 mxArray *pa;
 printf("reading file->..\n");
 pmat=matOpen(file,"r");
 if(pmat==NULL)
 {printf("error opening file \n");
 return(1);
 }

 dir=matGetDir(pmat,&ndir);
 if(dir=NULL)
 {printf("error reading directory of file  %s",file);
 }
 else
 {printf(" Direcotry of %s\n" ,file);
 for (i=0;i<ndir;i++)
 {printf("%s \n",dir[i]);
 }
 }
 mxFree(dir);
 if(matClose(pmat)!=0)
 {printf("errror closing file..\n");
 return(1);
 }

 printf("examing the header for each variable \n");
 pmat=matOpen(file,"r");
 for(i=0;i<ndir;i++)
 {//pa=matGetNextVariableInfo(pmat);
 if(pa==NULL)
 {printf("error reading file header \n");
 return(1);
 }
// printf("array %s dimension has %d dimensions",mxGetName(pa),mxGetNumberOfDimensions(pa));
 if(mxIsFromGlobalWS(pa) )
	 printf(" is a global variable when saved \n");
 else
     printf(" is a loacal variable when saved \n");

if(matClose(pmat)!=0)
 {printf("errror closing file..\n");
 return(1);
 }
 pmat=matOpen(file,"r");
 if(pmat==NULL)
 {printf("error opening file \n");
 return(1);
 }

 printf("\n reading the actual array contents \n");
 for(i=0;i<ndir;i++)
 {
 pa=matGetNextVariable(pmat,"LDdata")  ;
 if(pa==NULL)
 {printf("error reading contents \n");
 return(1);
 }
 //printf("according contents array %s dimension has %d dimensions",mxGetName(pa),mxGetNumberOfDimensions(pa));
 if(mxIsFromGlobalWS(pa) )
	 printf(" is a global variable when saved \n");
 else
     printf(" is a loacal variable when saved \n");

if(matClose(pmat)!=0)
 {printf("errror closing file..\n");
 return(1);
 }

 
 }
 }

}

int main()
{int createresult,readresult,result;
createresult=matcreate("mattest.mat");
readresult=matread("mattest.mat");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -