find the size of a structured array

87 Ansichten (letzte 30 Tage)
Richard
Richard am 9 Jan. 2012
Bearbeitet: Stephen23 am 13 Dez. 2022
I have a structured array called 'Data' which is a 1x1 struct, within this structured array are Data.note1, Data.note2, Data.note3, Data.note4. How is it possible to find the number of fields in the structured array? Where if it was a cell you would use length(cell)! Doing this for the structured array returns 1 where it should be 4.
  1 Kommentar
Stephen23
Stephen23 am 13 Dez. 2022
Bearbeitet: Stephen23 am 13 Dez. 2022
"Doing this for the structured array returns 1 where it should be 4."
No, it should return 1 because you have a scalar structure, you even wrote this yourself: "I have a structured array called 'Data' which is a 1x1 struct". A 1x1 array is scalar, i.e. has only one element, regardless of its class:
In contrast a structure array with four elements has ... four elements:
S = struct('X',{1,2,3,4}) % 1x4, not 1x1
S = 1×4 struct array with fields:
X
length(S)
ans = 4
The size of a structure array is completely independent of how many fields it has.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jonathan Sullivan
Jonathan Sullivan am 9 Jan. 2012
length(fieldnames(Data))

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by