📄 showstruct.c
字号:
/* showstruct.c 文件内容 */
#include "mex.h"
#include "matrix.h"
#define _MAX_STRUCT_FIELD_NUM 40
void printArrayClass(mxArray *pa)
{
if(pa==NULL)
{
mexPrintf("空");
return;
}
switch(mxGetClassID(pa))
{
case mxCELL_CLASS:
{
mexPrintf("元组阵列");
break;
}
case mxSTRUCT_CLASS:
{
mexPrintf("结构体阵列");
break;
}
case mxCHAR_CLASS:
{
mexPrintf("字符串阵列");
break;
}
case mxLOGICAL_CLASS:
{
mexPrintf("逻辑数值阵列");
break;
}
case mxDOUBLE_CLASS:
{
mexPrintf("双精度数值阵列");
break;
}
case mxSINGLE_CLASS:
{
mexPrintf("单精度数值阵列");
break;
}
case mxINT8_CLASS:
case mxINT16_CLASS:
case mxINT32_CLASS:
case mxINT64_CLASS:
{
mexPrintf("有符号整型数值阵列");
break;
}
case mxUINT64_CLASS:
case mxUINT8_CLASS:
case mxUINT16_CLASS:
case mxUINT32_CLASS:
{
mexPrintf("无符号整型数值阵列");
break;
}
default:
{
mexPrintf("其他MATLAB类型阵列");
break;
}
}
}
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
mxArray *pa=NULL;
int i,j;
char *fieldname=NULL;
for(i=1:i<nrhs;i++)
{
if(mxlsStruct(prhs[i]))
{
mexPrintf("第%d个输入变量的各域类型如下:\n",i+1);
for(j=0,j<_MAX_STRUCT_FIELD_NUM;j++)
{
fieldname=mxGetFieldNameByNumber(prhs[i],j);
if(fieldname=NULL)
{
break;
}
mePrintf("\t%s:",fieldname);
printArrayClass(mxGetFieldByNumber(prhs[i],0,j));
mexPrintf("\n");
}
}
else
{
mexPrintf("第%d个输入变量非结构体阵列!\n",i+1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -