Performance of structures as function arguments

Hi, I sometimes see code where structures are passed into a function and the fields are then stored in local variables, e.g.
function(data)
alpha = data.alpha [...]
Is there a good reason to do this, are the local variables accessed quicker than the structure elements or something?

 Accepted Answer

Yes.
The "Good reason", is that an equation, say,
L = 1/2 * rho * Vel.^2 * area * (alpha*P1 + P0);
Is far quicker to read and write than:
Output.Lift = 1/2 * Environment.Density * Aircraft.Velocity.X.^2 * Aircraft.WingSurfaceArea * (Aircraft.Alpha * Aircraft.LiftCoefficientP(1) + Aircraft.LiftCoefficientP0)
Structures (particularly large ones, and arrays of structures) can be much slower than basic variables.

1 Comment

Ok thanks, i can see that this can be a reason. To clarify though, my interest was not in speed of writing or reading of code, but in Matlab reading structures (not arrays of structures) rather than basic variables.

Sign in to comment.

More Answers (0)

Categories

Asked:

Dan
on 2 Oct 2014

Commented:

Dan
on 2 Oct 2014

Community Treasure Hunt

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

Start Hunting!