1.ssGetSFcnParam
描述:读取S-Function模块中某个参数的内容
语法:mxArray *p = ssGetSFcnParam(S, 0);
输入:S,index(参数索引)
返回值:存储有参数内容的指针,指针指向的类型为mxArray,mxArray为MATLAB中的数组类型。
示例:如图所示,S-Function模块Paremeters区域有一个s-function parameters参数,对里面某个参数的内容进行提取,比如我要取第一个参数Raddress的内容。
mxArray *pVal0 = ssGetSFcnParam(S, 0);
//注意参数的索引是从0开始的
2.mxGetNumberOfElements
描述:获取S-Function模块中某个参数的元素个数
语法:size_t mxGetNumberOfElements(const mxArray *pm);
输入:mxArray类型的指针
返回值:参数元素个数
示例:在1.ssGetSFcnParam部分的示例中取出了Raddress的内容,我们接着得出Raddress中有多少个元素。
int_T length = (int_T)mxGetNumberOfElements(*p);
3.ssSetErrorStatus
描述:在SImulink的运行窗口输出错误信息
语法:void ssSetErrorStatus(SimStruct *S, const char_T *msg)
输入:S,要打印的信息
返回值:无
示例:
ssSetErrorStatus(S,"CSDN");
//当该语句被触发时,就会打印出"CSDN"
4.mxGetString
描述:将mxArray中的内容赋值给字符串
语法:int mxGetString(const mxArray *pm, char *str, mwSize strlen);
输入:*pm(mxArray类型数组),*str(字符数组指针),strlen(要赋值的长度)
返回值:成功返回0,失败返回1
示例:
mxGetString(ssGetSFcnParam(S,ParaIndex),IpAddrStr,length+1)
5.mxGetPr
描述:使用mxGetPr可以从将mxArray类型的数据从matlab传递到c中
语法:double *mxGetPr(const mxArray *pm);
输入:*pm(mxArray类型数组)
返回值:返回double类型的指针,指向从MATLAB中传递过来的数据
示例:
real_T* Ptr= mxGetPr(ssGetSFcnParam(S,ParaIndex));
//real_T在MATLAB中就是double类型
6.参数检查类型函数
描述:检查参数类型
输入:*pm(mxArray类型数组)
返回值:若数组结构中存在该类型则返回1,否则为0
mxIsNumeric:是否为数字类型,double,int等
mxIsLogical:是否包含布尔值true,false
mxIsEmpty:是否为空
mxIsSparse:是否为系数阵列,即大部分元素为0的数组
mxIsComplex:是否包含复数类型
mxIsDouble:是否包含小数