Structures de tableaux dans Matlab

Imaginez que vous souhaitiez maîtriser l'utilisation des structures dans Matlab. Vous verrez, ce n'est pas si ardu qu'il y paraît. Une structure, c'est en fait une collection de données auxquelles on accède par leur nom. Pour créer une structure dans Matlab, rien de plus simple : il suffit d'utiliser la fonction « struct ». Laissez-moi vous guider dans l'apprentissage des structures sous Matlab.

Que sont les structures ? C'est simple. Une structure, c'est un peu comme un tableau, mais en plus sophistiqué. Contrairement à un tableau, une structure peut contenir des données de différents types et les organiser en champs distincts. Chaque champ de la structure se distingue par un nom unique. Pensez à un annuaire téléphonique, c'est un exemple classique de structure de tableau.

Comment créer une structure de tableau ?

Commencez par créer une structure nommée « annuaire ».

Le premier champ de cette structure est le « nom » des contacts dans l'annuaire.

>> annuaire.nom = "John Smith";

Intégrez ensuite le deuxième champ de la structure.

Il correspond au « numéro de téléphone » de chaque contact.

>> annuaire.numero_telephone = 123456789;

Un champ peut renfermer des valeurs numériques, des chaînes de caractères, voire même un tableau.

>> annuaire(1).numero_telephone = [123456789, 987654321];

Enfin, ajoutez le troisième champ de la structure pour y inscrire l'adresse de la personne.

>> annuaire.adresse = "New York";

Vous pouvez également créer une structure en un seul coup en renseignant tous les champs via la fonction struct().

>> annuaire = struct('nom', 'John Smith', 'numero_telephone', 123456789, 'adresse', 'New York')

Vous venez de créer une structure nommée « annuaire », contenant un enregistrement et trois champs (nom, numéro de téléphone, adresse).

Remarque. Les champs de la structure se distinguent par leur type de données. Deux champs sont alphanumériques (nom et adresse), tandis que le troisième est numérique (numéro de téléphone).

Il est également possible de créer une nouvelle structure en y insérant plusieurs enregistrements.

Il suffit de nommer une seule fois les champs et d'encapsuler les données de chaque champ entre accolades.

C = struct('matière', {'Maths', 'Latin', 'Sciences'}, 'note', {27, 30, 18});

Comment consulter les champs d'une structure ?

Pour visualiser la liste des champs d'une structure, utilisez la fonction fieldnames().

>> fieldnames(annuaire)
ans =
{
[1,1] = nom
[2,1] = numero_telephone
[3,1] = adresse
}

Cette fonction énumère les champs de la structure.

Dans cet exemple, la structure comporte trois champs : nom, numéro de téléphone et adresse.

Chaque enregistrement dans la structure partage le même nombre de champs (3) et les mêmes noms de champs (nom, numéro de téléphone, adresse).

Comment enrichir une structure avec de nouvelles données ?

Après avoir établi la structure des champs, vous pouvez y ajouter des enregistrements, c'est-à-dire des informations.

Par exemple, pour ajouter un second enregistrement, indiquez le nom de la structure suivie de l'indice 2 entre parenthèses, et placez le champ concerné à gauche.

Entrez ensuite la valeur correspondante à droite.

>> annuaire(2).nom = "Emily Johnson";
>> annuaire(2).numero_telephone = "987654321";

Votre structure compte désormais deux enregistrements.

Lors de l'insertion d'un nouvel enregistrement, certains champs peuvent rester vides.

Par exemple, l'adresse n'est pas renseignée dans le second enregistrement.

>> annuaire(2)
ans =

structure scalaire contenant les champs :

nom = Emily Johnson
numero_telephone = 987654321
adresse = [](0x0)

Il est aussi possible d'ajouter un nouvel enregistrement en utilisant la fonction struct().

>> annuaire(3) = struct('nom', 'Michael Davis', 'numero_telephone', 123456789, 'adresse', 'Los Angeles')

Comment accéder aux données d'une structure ?

Pour consulter les données d'une structure, saisissez le nom de la structure suivi de l'indice entre parenthèses, puis le nom du champ après un point.

Par exemple, pour lire le numéro de téléphone du premier enregistrement, tapez annuaire(1).numero_telephone.

>> annuaire(1).numero_telephone
ans = 123456789

Pour consulter le numéro de téléphone du second enregistrement, tapez annuaire(2).numero_telephone.

>> annuaire(2).numero_telephone
ans = 987654321

Pour afficher toutes les données du champ « numero_telephone » de la structure « annuaire », tapez annuaire.numero_telephone.

>> annuaire.numero_telephone
ans = 123456789
ans = 987654321

Pour obtenir toutes les données des champs du premier enregistrement, tapez annuaire(1).

>> annuaire(1)
ans =

structure scalaire contenant les champs :

nom = John Smith
telephone = 123456789 987654321
adresse = New York

Comment supprimer un champ d'une structure ?

Pour éliminer un champ d'une structure, utilisez la fonction rmfield().

Ajoutez par exemple un nouveau champ « test » à la structure.

>> annuaire(2).test = "ABC";

La structure comporte maintenant quatre champs (nom, téléphone, adresse, test).

>> fieldnames(annuaire)
ans =
{
[1,1] = nom
[2,1] = numero_telephone
[3,1] = adresse
[4,1] = test
}

Pour retirer le champ « test », tapez rmfield(annuaire, "test").

>> annuaire = rmfield(annuaire, "test");

Le champ « test » a été supprimé de la structure.

>> fieldnames(annuaire)
ans =
{
[1,1] = nom
[2,1] = numero_telephone
[3,1] = adresse
}

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Structures de tableaux dans Matlab