MATLAB: Difference between ssGetInputPortRealSignal and ssGetInput​PortRealSi​gnalPtrs

s-functionsimulinkssgetinoutportrealsignalptrsssgetinputportrealsignal

Hi there,
I coded a S-Function which works pretty good. This function has several inputports with one dimension and several moredimensional inputports. At the moment I'm using the macro ssGetInputPortRealSignalPtrs(S,i)[j] to get the value of an input. But today someone told me using the macro ssGetInputPortRealSignal(S,i) might be a better way to get the value of this signal because this has a higher performace.
Can somebody explain the main differences between those to macros and which one should be used? I only know so far that ssGetInputPortRealSignals requires time continuous signals which can be initialzed with the macro ssSetInputPortRequiredContiguous.
Thanks for your support in advance, CN

Best Answer

You are correct that "ssGetInputPortRealSignals requires time contiguous signals which can be initialzed with the macro ssSetInputPortRequiredContiguous."
ssGetInputPortRealSignalPtrs is used for signals that can be non-contiguous. Examples of a non-contiguous signal are a bus signal or a signal that is a result of MUX-ing together signals from multiple sources, and possible other types of composite signals (I'm not sure if all composite signals are non-contiguous).