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

📄 showcell.c

📁 这是机械工业张德丰《MATLAB与外部程序接口编程》随书源码
💻 C
字号:
/* /* showcell.c 文件内容 */
#include "mex.h"
#include "matrix.h"

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;
	mwSize cellNum=0;
	for(i=1:i<nrhs;i++)
	{
		pa=prhs[i];
		if(mxlsCell(prhs[i]))
		{
			cellNum=mxGetNumberOfElements(pa);
			mexPrintf("第%d个输入变量的各元素类型如下:\n",i+1);
			for(j=0,j<cellNum;j++)
			{
				mexPrintf("\t第%d个元素是:",j);
				printArrayClass(mxGetCell(pa,j));
				mexPrintf("\n");
			}					
		}
		else
		{
			mexPrintf("第%d个输入变量非元组阵列!\n",i+1);
		}
	}
}
 文件内容 */
#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 + -