Drexel dragonThe Math ForumDonate to the Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: using getfield() with a stuct array
Replies: 3   Last Post: Jan 18, 2013 5:14 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Steven Lord

Posts: 17,945
Registered: 12/7/04
Re: using getfield() with a stuct array
Posted: Jan 18, 2013 5:14 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Bruce Elliott" <bruce.elliott@jhuapl.nospam.edu> wrote in message
> Is there any way to use getfield() on an array of structure and to get a
> same-sized array of field values?
> In other words, I can do this:
> x = [myArr.F];
> to get an array with the values in the field F in my stuct array, myArr.
> This, however, does not work:
> x = getfield(myArr,'F');
> (Putting [] around anything on the right-hand-side does not help.)
> There's probably a good reason for this, but the documentation suggests
> that x = getfield(S,'F') is equivalent to x = S.F, so I would have hoped
> that I could do this.

For _scalar_ struct arrays S, yes those are equivalent.


"value = getfield(struct, 'field'), where struct is a 1-by-1 structure,
returns the contents of the specified field, equivalent to value =
"If structure struct or any of the fields is a nonscalar structure, and you
do not specify an Indx, the getfield function returns the values associated
with the first index."


thefieldname = 'F';
x = [myArr.(thefieldname)]

You can use this like:

F = struct('x', {2, 5, 17})
z = F(mod([F.('x')], 2) == 1)

This will extract the elements of F whose x fields contain odd values. From
the way I constructed F you would expect z to contain two elements, and it

Steve Lord
To contact Technical Support use the Contact Us link on

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum 1994-2015. All Rights Reserved.