Difference between ssGetInputPortRealSignal and ssGetInput​PortRealSi​gnalPtrs

4 views (last 30 days)
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

Accepted Answer

Kaustubha Govind
Kaustubha Govind on 11 Jan 2013
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).
Kaustubha Govind
Kaustubha Govind on 14 Jan 2013
Christoph: I don't know enough about the performance comparison between the two functions, but it seems likely that ssGetInputPortRealSignal would be more efficient if you assuredly have contiguous signals. It is best to use ssSetInputPortRequiredContiguous to ensure contiguity.

Sign in to comment.

More Answers (0)


Find more on Block Authoring and Simulation Integration in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!