MATLAB: Performance of structures as function arguments

functionsperformancestructures

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?

Best 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.