📄 matdemo.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 + -