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 :
Créez une structure scalaire comme décrit dans Define Scalar Structures for Code Generation.
Appelez la fonction
repmat
en lui passant la structure scalaire et les dimensions du tableau.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; ...