find the size of a structured array

89 vues (au cours des 30 derniers jours)
Richard
Richard le 9 Jan 2012
Modifié(e) : Stephen23 le 13 Déc 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 commentaire
Stephen23
Stephen23 le 13 Déc 2022
Modifié(e) : Stephen23 le 13 Déc 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.

Connectez-vous pour commenter.

Réponse acceptée

Jonathan Sullivan
Jonathan Sullivan le 9 Jan 2012
length(fieldnames(Data))

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by