Main Content


Set the numeric types (real, complex, or inherited) of the signals accepted by an input port




C, C++


void mdlSetInputPortComplexSignal(SimStruct *S, int_T port, 
 CSignal_T csig)



SimStruct representing an S-Function block.


Index of a port.


Numeric type of signal, either COMPLEX_NO (real) or COMPLEX_YES (complex).


The Simulink® engine calls this routine to set the input port numeric type for inputs that have this attribute set to COMPLEX_INHERITED. The input csig is the proposed numeric type for this input port. This method is only valid for simulation. C MEX S-functions must enclosed this method in a #if defined(MATLAB_MEX_FILE) statement.

The S-function must check whether the proposed numeric type is a valid type for the specified port. If it is valid, a C MEX S-function sets the numeric type of the specified input port using ssSetInputPortComplexSignal. Otherwise, it reports an error using ssSetErrorStatus.

The S-function can also set the numeric types of other input and output ports with inherited numeric types. The engine reports an error if the S-function changes the numeric type of a port whose numeric type is known.

If the S-function does not implement this routine, the engine assumes that the S-function accepts a real or complex signal and sets the input port numeric type to the specified value.

The engine calls this method until all input ports with inherited numeric types have their numeric types specified.


See sdotproduct.c for an example of how to use this function.

Version History

Introduced before R2006a