Contenu principal

Définir des tableaux de structures pour la génération de code

Assurer la cohérence des champs

Pour la génération de code, lorsque vous créez un tableau de structures MATLAB®, les champs correspondants des éléments du tableau doivent être de taille, type et complexité identiques.

Une fois le tableau de structures créé, vous pouvez définir une taille variable pour les champs de structure avec coder.varsize (MATLAB Coder). Consultez la rubrique Declare Bounded and Unbounded Structure Fields (MATLAB Coder).

Utiliser repmat pour définir un tableau de structures avec des propriétés de champ cohérentes

Il est possible de créer un tableau de structures à partir d’une structure scalaire avec la fonction MATLAB repmat qui réplique et juxtapose une structure scalaire existante :

  1. Créez une structure scalaire comme décrit dans Define Scalar Structures for Code Generation.

  2. Appelez la fonction repmat en lui passant la structure scalaire et les dimensions du tableau.

  3. Affectez des valeurs à chaque structure en utilisant l’indexation de tableau standard et la notation par points.

Par exemple, le code suivant crée X, un tableau 1 x 3 de structures scalaires. Chaque élément du tableau est défini par la structure s qui possède deux champs a et b :

...
s.a = 0;
s.b = 0;
X = repmat(s,1,3);
X(1).a = 1;
X(2).a = 2;
X(3).a = 3;
X(1).b = 4;
X(2).b = 5;
X(3).b = 6;
...

Définir un tableau de structures avec struct

Pour créer un tableau de structures avec la fonction struct, spécifiez les arguments champ-valeur sous forme de cell arrays. Chaque élément de cell array est la valeur du champ dans l’élément de tableau de structures correspondant. Pour la génération de code, les champs correspondants des structures doivent être de même type. Par conséquent, les éléments d’un cell array de valeurs de champ doivent être de même type.

Par exemple, le code suivant crée un tableau de structures 1 x 3. Pour chaque structure du tableau, a est de type double et b est de type char.

s = struct('a', {1 2 3}, 'b', {'a' 'b' 'c'});

Définir un tableau de structures par concaténation

Pour créer un petit tableau de structures, vous pouvez utiliser l’opérateur de concaténation, c’est-à-dire les crochets ( [ ] ), pour associer une ou plusieurs structures dans un tableau. Consultez la rubrique Créer, concaténer et étendre des matrices. Pour la génération de code, les structures concaténées doivent être de taille, classe et complexité identiques.

Par exemple, le code suivant utilise la concaténation et une fonction locale pour créer les éléments d’un tableau de structures 1 x 3 :

...
W = [ sab(1,2) sab(2,3) sab(4,5) ];

function s = sab(a,b)
  s.a = a;
  s.b = b;
...

Voir aussi

Rubriques