S-Funcion(一)——常用函数

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是否包含小数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值