struct
Tableau de structures
Description
Un tableau de structures est un type de données qui regroupe des données associées dans des conteneurs de données appelés champs. Chaque champ peut contenir n’importe quel type de données. Accédez aux données d’un champ avec une notation pointée de la forme structName.fieldName.
Création
Lorsque vous avez des données à intégrer dans une nouvelle structure, créez la structure en utilisant la notation pointée pour nommer ses champs un par un :
s.a = 1;
s.b = {'A','B','C'}s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
Les noms de champs peuvent contenir des lettres ASCII (A-Z, a-z), des chiffres (0-9) et des underscores. Ils doivent commencer par une lettre. La longueur maximale d’un nom de champ est namelengthmax.
Vous pouvez également créer un tableau de structures avec la fonction struct décrite ci-dessous. Vous pouvez spécifier de nombreux champs à la fois ou créer un tableau de structures non scalaire.
Syntaxe
Description
s = struct crée une structure scalaire (1 x 1) ne contenant aucun champ.
s = struct( crée un tableau de structures avec le champ et la valeur spécifiés. L’argument en entrée field,value)value peut contenir n’importe quel type de données, par exemple numérique, logique, caractère ou cell array.
Si
valuen’est pas un cell array ou sivalueest un cell array scalaire,sest une structure scalaire. Par exemple,s = struct('a',[1 2 3])crée une structure de 1 x 1 oùs.a = [1 2 3].Si
valueest un cell array non scalaire,sest un tableau de structures de mêmes dimensions quevalue. Chaque élément descontient l’élément correspondant devalue. Par exemple,s = struct('x',{'a','b'})renvoies(1).x = 'a'ets(2).x = 'b'.Si
valueest un cell array vide{},sest une structure vide (0 x 0).
s = struct(field1,value1,...,fieldN,valueN) crée un tableau de structures avec plusieurs champs.
Si aucune des entrées de
valuen’est un cell array ou si toutes les entrées devaluequi sont des cell arrays sont scalaires,sest une structure scalaire.Si l’une des entrées de
valueest un cell array non scalaire,sa les mêmes dimensions que ce cell array. Par ailleurs, si plusieurs entrées devaluesont des cell arrays non scalaires, elles doivent toutes avoir les mêmes dimensions.Pour toute entrée de
valuequi est un cell array scalaire ou un tableau de tout autre type de données,structinsère le contenu devaluedans le champ approprié pour tous les éléments des. Par exemple,s = struct('x',{'a','b'},'y','c')renvoies(1).x = 'a',s(2).x = 'b',s(1).y = 'c'ets(2).y = 'c'.Si une entrée de
valueest un cell array vide{}, la sortiesest une structure vide (0 x 0). Pour spécifier un champ vide et conserver les valeurs des autres champs, utilisez plutôt[]en tant qu’entrée devalue.
s = struct([]) crée une structure vide (0 x 0) ne contenant aucun champ.
s = struct( crée une structure scalaire contenant des noms de champs et des valeurs qui correspondent aux propriétés de obj)obj. La fonction struct ne convertit pas, obj mais crée plutôt s en tant que nouvelle structure. Cette structure ne conserve pas les informations relatives aux classes. Par conséquent, les propriétés privées, protégées et masquées deviennent des champs publics dans s. La fonction struct génère un avertissement lorsque vous utilisez cette syntaxe.
