S-function input ports with different variable dimensions
1 次查看(过去 30 天)
显示 更早的评论
Hi all,
I am writing a C S-function for Simulink, with two input ports. The width of both ports is set to DYNAMICALLY_SIZED, because the input is a one dimensional vector with 1 or 4 elements. Everything goes well as long as both input signals have the same dimension (1 or 4). However, when the input signals have different dimensions (1 for the first and 4 for the second, or vice versa) the S-function doesn't run. There is an error which says that the input port is vector with 1 element, allthough the signal that goes to the input port is a vector with 4 elements.
Does anyone have an idea on what I am doing wrong, or what might be the solution to this problem?
0 个评论
采纳的回答
Kaustubha Govind
2013-2-26
The documentation suggests that you implement mdlSetInputPortDimensionInfo. Please try adding these lines to your S-function:
#define MDL_SET_INPUT_PORT_DIMENSION_INFO
#if defined(MDL_SET_INPUT_PORT_DIMENSION_INFO) && defined(MATLAB_MEX_FILE)
void mdlSetInputPortDimensionInfo(SimStruct *S, int_T port,
const DimsInfo_T *dimsInfo)
{
if (!ssSetInputPortDimensionInfo(S, port, dimsInfo)) return;
}
#endif
0 个评论
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!