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