textscan

Lê dados formatados de um arquivo ou texto em um cell array de colunas.

Categoria: Data Import and Analysis > Data Import and Export

Sintaxe

C = textscan(fid, formatSpec)

Lê de um arquivo aberto.

C = textscan(str, formatSpec)

Lê de um vetor de caracteres.

C = textscan(..., Name, Value)

Define opções como 'Delimiter' e 'HeaderLines'.

Descrição

O formato é aplicado repetidamente até o fim da entrada, de modo que cada conversão coleta uma coluna. %d gera int32 e %f gera double. Junte colunas numéricas da mesma classe com [C{:}].

Como o resultado guarda colunas de tipos diferentes, textscan serve a arquivos que misturam texto e números, onde readmatrix não consegue.

Argumentos de entrada

formatSpec
Conversões como %f, %d, %s, uma por coluna. O texto literal no formato deve casar com os dados.
'Delimiter'
Separador de campos ou cell array de separadores.
'HeaderLines'
Número de linhas a pular no início.

Argumentos de saída

C
Cell array com uma célula por conversão: vetores coluna numéricos, ou cell arrays de vetores de caracteres para %s.

Exemplo

Texto e números

C = textscan('a 1 b 2 c 3', '%s %f');
C{1}'
C{2}'
D = textscan('10:20 30:40', '%d:%d');
[D{:}]
fid = fopen('t.csv', 'w'); fprintf(fid, 'id,val\n1,2.5\n2,3.5\n'); fclose(fid);
fid = fopen('t.csv');
E = textscan(fid, '%d %f', 'Delimiter', ',', 'HeaderLines', 1);
fclose(fid);
E{2}'
Saída
ans = 1×3 cell

    {'a'}    {'b'}    {'c'}
ans = 1×3

     1     2     3
ans = 2×2 int32 matrix

   10   20
   30   40
ans = 1×2

    2.5000    3.5000

Veja também

textread fscanf readtable readcell strsplit