Structure or array for S-function input, output and parameters?
3 views (last 30 days)
Show older comments
Hi,
What is faster and what do you recommend?
I have a C S-function with 14 inputs. 1. Right now I am using a single port and I see the input as an array. I have 14 #define in order to help selecting the right input: for example #define U_IDX_FLOW_WATER 0 and then I select it as u[U_IDX_FLOW_WATER]. It helps understanding the code better than using a plain number.
2. I just came across passing structures to S-functions and, I guess, I could select my input like u->flow_water and forget about the hardcoding that I did before.
Is there a performance penalty when using approach 2?
Thanks, Remus.
0 Comments
Answers (1)
Kaustubha Govind
on 25 Jul 2012
I can't imagine there being a major difference in Simulink performance between #1 and #2 - they are equivalent to writing two C functions - one that takes several function arguments and the other takes one structure argument with each field represent arguments from the first function. So it boils down to more of a C question - is one more efficient that the other in C?
However, from my experience, using structure/bus signals to combine similar signals is good modeling practice.
3 Comments
Remus Mihail Prunescu
on 25 Jul 2012
Edited: Remus Mihail Prunescu
on 25 Jul 2012
Kaustubha Govind
on 25 Jul 2012
Structure types are only supported for inputs, output and parameters, not states. But looks like you've found a solution anyway. :)
See Also
Categories
Find more on Naming Conventions in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!