How to find the name of the first filed of a struct?

42 views (last 30 days)
I have a structre which has some fields. How can I find the field name of the first field?
Here is the struct I have:
struct with fields:
unpatterned_H_65_full: [17×34 table]
unpatterned_H_100_full: [17×34 table]
unpatterned_H_100_ribboned: [17×34 table]
unpatterned_H_100_ribboned_sectioned: [17×34 table]
unpatterned_H_65_sectioned: [17×34 table]
unpatterned_He_100_sectioned: [17×34 table]
I need to write a code that returns say " unpatterned_H_65_full".

Accepted Answer

dpb
dpb on 9 Feb 2020
If the struct variable is s, then
name=fieldnames(s);
name=name(1);
No way to write the second-level addressing w/o the intermediary/temporary variable comes to me for a one-liner.
  4 Comments
Walter Roberson
Walter Roberson on 9 Feb 2020
Having names around permits you to examine additional fields less expensively.
In any case fieldnames returns a cell array of character vectors and indexing it with (1) would return a scalar cell instead of the character vector
dpb
dpb on 9 Feb 2020
Edited: dpb on 9 Feb 2020
  1. Yes, if there were to be a need for other fields besides the stated need for only the first
  2. Yes, but cellstr is oftentimes more convenient than char string--but, sometimes it isn't...OP didn't give any context to know how the result was/is to be used. :)

Sign in to comment.

More Answers (0)

Categories

Find more on Structures in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!