« Découvrir Scilab/Structures de données avancées » : différence entre les versions

Contenu supprimé Contenu ajouté
Automatique : Ajout de la navigation entre les chapitres
→‎Structures : précisions sur type et typeof ; matrice de structure
Ligne 26 :
Les structures sont des objets similaires aux vecteurs, mais dont les champs on un nom de type <code>structure.champ</code>. Elles sont crées par la commande <code>struct("''champ1''", ''valeur1'', "''champ2''", ''valeur2'', …)</code> :
<source lang="scilab">
-->aujourdhui = struct('"jour'", 23, '"mois'", '"octobre'", '"annee'", 2012)
aujourdhui =
Ligne 42 :
23.
 
-->aujourdhui.mois = '"novembre'"
aujourdhui =
Ligne 59 :
semaine: 47
</source>
de fait, on peut créer une structure directement en assignant la valeur d'un champ :
<source lang="scilab">
-->demain.jour = 24
demain =
jour: 24
-->type(demain)
ans =
17.
-->typeof(demain)
ans =
st
</source>
Notons que selon son contenu, la commande <code>type()</code> sur une structure retourne 16 (tlist) ou 17 (mlist).
 
On peut aussi créer une structure avec une liste typée :
<source lang="scilab">
aujourdhuihier = tlist(['"nom'",' "jour'", '"mois'", '"annee'"], 2322, '"octobre'", 2012)
</source>
Dans le cas d'unune liste typée, les appels suivants sont équivalents : <code>aujourdhuihier(2)</code>, <code>aujourdhui('jour')</code>,<code>aujourdhuihier.jour</code>. La syntaxe générale de <code>tlist</code> est :
<source lang="scilab">
tlist(type, a1, a2, …)
Ligne 73 ⟶ 91 :
** les éléments suivants sont les noms des champs ;
* ''a1'', ''a2'', … sont les valeurs des champs.
Si l'objet se comporte de la même manière, en revanche, la commande <code>typeof()</code> ne retourne donc pas <code>st</code>.
 
Enfin, on peut créer une matrice de structures :
<source lang="scilab">
-->foo(1, 1).nombre = %e
foo =
nombre: list
-->foo(2, 2).texte = "e"
foo =
2x2 struct array with fields:
nombre
texte
-->foo(1, 1).nombre
ans =
2.7182818
-->foo(1, 1).texte
ans =
[]
 
-->type(foo)
ans =
17.
-->typeof(foo)
ans =
st
</source>
 
== Tableaux de cellules ==