MATLAB Answers

Performance of structures as function arguments

2 views (last 30 days)
Dan
Dan on 2 Oct 2014
Commented: Dan on 2 Oct 2014
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?

  0 Comments

Sign in to comment.

Accepted Answer

Iain
Iain on 2 Oct 2014
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

Dan
Dan on 2 Oct 2014
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)

Sign in to answer this question.


Translated by