textscan
Lit des données formatées depuis une chaîne ou un fichier.
📝Syntaxe
C = textscan(chr, format)
C = textscan(fid, format)
C = textscan(__, Name, Value)
[C, position] = textscan(__)
📥Arguments d'entrée
Paramètre Description
chr un vecteur de caractères ou une chaîne scalaire à lire.
fid un identifiant de fichier retourné par fopen. Les données sont lues depuis la position courante jusqu'à la fin du fichier.
format un vecteur de caractères décrivant les spécificateurs de conversion appliqués à chaque champ.
Name, Value une ou plusieurs paires option/valeur.
📤Arguments de sortie
Paramètre Description
C un tableau de cellules avec une cellule par spécificateur de conversion.
position le nombre de caractères lus lorsque la lecture s'est arrêtée.
📄Description

textscan lit des données formatées et retourne un tableau de cellules C. Chaque cellule contient une colonne de sortie collectée sur toutes les répétitions du format, car le format est appliqué de façon cyclique sur toute l'entrée.

Les spécificateurs numériques produisent des vecteurs colonnes, tandis que %s, %q et %[...] produisent des tableaux de cellules de vecteurs de caractères.

Spécificateurs de conversion pris en charge :

%d entier signé (int32), %u entier non signé (uint32), %f nombre à virgule flottante (double), %s texte séparé par des espaces ou un délimiteur, %q texte éventuellement entre guillemets, %c un nombre fixe de caractères, %[...] et %[^...] lecture d'un ensemble de caractères.

Une largeur de champ peut être indiquée (par exemple %5d ou %3s). Un spécificateur préfixé par * (par exemple %*d) est lu mais non stocké. Un suffixe de taille sélectionne la classe numérique (%d8, %d16, %d32, %d64, %u8 et %f32). Le texte littéral entre les spécificateurs doit correspondre dans l'entrée.

Options option/valeur prises en charge :

Delimiter un vecteur de caractères, ou un tableau de cellules de vecteurs de caractères, utilisé pour séparer les champs.

HeaderLines le nombre de lignes d'en-tête à ignorer.

CollectOutput si vrai, les colonnes consécutives de même classe sont concaténées dans un seul tableau.

EmptyValue la valeur numérique utilisée pour les champs numériques vides.

Whitespace les caractères traités comme des espaces.

MultipleDelimsAsOne si vrai, les délimiteurs consécutifs sont traités comme un seul délimiteur.

CommentStyle un marqueur de commentaire, ou une paire début et fin, dont le texte est ignoré.

TreatAsEmpty des valeurs textuelles traitées comme des champs numériques vides.

EndOfLine accepté pour compatibilité ; les caractères de fin de ligne sont toujours traités comme des séparateurs.

💡Exemples
C = textscan('1 2 3', '%d')
C = textscan('a,b,c', '%s', 'Delimiter', ',');
C{1}
C = textscan('name:42', '%[^:]:%d')
🔗Voir aussi
sscanffscanffopen
🕔Historique des versions
Version Description
2.0.0 initial version
Modifier cette page sur GitHub