Générer des noms de champs à partir de variables
Cet exemple montre comment déterminer le nom d’un champ de structure de manière dynamique au run-time à partir d’une variable ou d’une expression. La syntaxe générale est la suivante :
structName.(dynamicExpression)
où dynamicExpression est une variable ou une expression qui, une fois évaluée, renvoie un string scalar. Les noms de champs référencés avec des expressions sont appelés noms de champs dynamiques.
Par exemple, créez un nom de champ à partir de la date du jour :
currentDate = datestr(now,'mmmdd');
myStruct.(currentDate) = [1,2,3]Si la date du jour indiquée par votre système est le 29 février, ce code affecte les données à un champ nommé Feb29 :
myStruct =
Feb29: [1 2 3]Le nom de champ dynamique peut renvoyer un vecteur de caractères ou un string scalar. Par exemple, vous pouvez spécifier le champ Feb29 avec des guillemets simples ou doubles.
myStruct.('Feb29')ans =
1 2 3myStruct.("Feb29")ans =
1 2 3Tout comme les noms de variables, les noms de champs doivent commencer par une lettre, peuvent contenir des lettres, des chiffres ou des underscores et sont sensibles à la casse. Les noms de champs ne peuvent pas contenir de points. Pour éviter tout conflit potentiel, n’utilisez pas les noms de variables ou fonctions existantes comme noms de champs.
Voir aussi
struct | fieldnames | getfield | setfield