Main Content

textread

(권장되지 않음) 텍스트 파일에서 데이터를 읽고 여러 출력값에 쓰기

textread는 권장되지 않습니다. textscan을 대신 사용하십시오. 자세한 내용은 호환성 관련 고려 사항을 참조하십시오.

설명

예제

[Var1,Var2,...,VarN] = textread(filename,format)은 전체 파일을 읽을 때까지 지정된 형식을 사용하여 파일 filename의 데이터를 변수 [Var1,Var2,...,VarN]으로 읽어옵니다. 텍스트 파일 형식을 알고 있는 경우 textread로 파일을 쉽게 읽어올 수 있습니다. textread는 고정 형식 파일과 자유 형식 파일을 모두 처리합니다.

textread는 입력값에서 문자 그룹이 일치하는지 확인하고 변환합니다. 각 입력 필드는 다음 공백이나 구분 기호 문자 또는 최대 필드 너비까지 확장된, 공백 이외의 문자로 구성된 그룹으로 정의됩니다. 반복 구분 기호 문자는 유의미하지만 반복 공백 문자는 하나로 처리됩니다.

예제

[Var1,Var2,...,VarN] = textread(filename,format,N)은 지정된 formatN번 재사용하여 데이터를 읽어옵니다. N이 0보다 작으면 textread는 전체 파일을 읽습니다.

예제

[Var1,Var2,...,VarN] = textread(___,Name,Value)는 위에 열거된 구문에 Name,Value 쌍의 입력 인수를 하나 이상 사용하여 옵션을 지정합니다.

예제

모두 축소

샘플 데이터 'scan1.dat'의 첫 번째 행은 다음과 같습니다.

09/12/2005 {'Level1'} 12.34 45 1.23e+10 Inf NaN {'Yes'} 5.1+3i

% 형식을 사용하여 파일을 자유 형식 파일로 간주하고 첫 번째 라인을 읽습니다.

[date,level,x,y,answer] = textread('scan1.dat','%s %s %f %d %s',1)
date = 1x1 cell array
    {'09/12/2005'}

level = 1x1 cell array
    {'Level1'}

x = 12.3400
y = 45
answer = 1x1 cell array
    {'1.23e10'}

샘플 데이터 'scan1.dat'의 첫 번째 행은 다음과 같습니다.

09/12/2005 {'Level1'} 12.34 45 1.23e+10 Inf NaN {'Yes'} 5.1+3i

파일을 고정 형식 파일로 간주하고 첫 번째 라인을 읽습니다. 부동소수점 값은 무시합니다.

[date,level,x,y,answer] = textread('scan1.dat','%s Level%d %f %d %s',1)
date = 1x1 cell array
    {'09/12/2005'}

level = 1
x = 12.3400
y = 45
answer = 1x1 cell array
    {'1.23e10'}

빈 셀을 가진 파일의 경우, emptyvalue 파라미터를 사용하십시오. 파일 data.csv에 다음이 포함되어 있다고 가정하겠습니다.

1,2,3,4,,6

7,8,9,,11,12

파일을 읽고 빈 셀은 NaN으로 채웁니다.

data = textread('data.csv','','delimiter',',','emptyvalue',NaN)
data = 2×6

     1     2     3     4   NaN     6
     7     8     9   NaN    11    12

fft.m 파일을 문자형 벡터로 구성된 셀형 배열로 읽어 들입니다.

file = textread('badpoem.txt','%s','delimiter','\n','whitespace','')
file = 4x1 cell
    {'Oranges and lemons,'    }
    {'Pineapples and tea.'    }
    {'Orangutans and monkeys,'}
    {'Dragonflys or fleas.'   }

입력 인수

모두 축소

파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

형식으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 인수는 반환 인수의 개수와 유형을 결정합니다. 반환 인수의 개수는 format의 내용에 의해 표시되는 항목의 개수입니다. format은 변환 지정자의 서브셋과 C 언어 fscanf 루틴의 일반적인 규칙을 지원합니다. format에 대한 값은 다음 표와 같습니다. format에 들어 있는 공백 문자는 무시됩니다.

형식

동작

출력값

리터럴

(일반 문자)

일치하는 문자를 무시합니다. 예를 들어, Dept 뒤에 숫자(부서 번호)가 오는 파일에서 Dept를 생략하고 숫자만 읽으려면 형식 지정자에서 'Dept'를 사용하십시오.

없음

%d

부호가 있는 정수 값을 읽습니다.

double형 배열

%u

정수 값을 읽습니다.

double형 배열

%f

부동소수점 값을 읽습니다.

double형 배열

%s

공백 또는 구분 기호로 구분된 텍스트를 읽습니다.

문자형 벡터로 구성된 셀형 배열

%q

큰따옴표로 묶인 텍스트를 큰따옴표를 제하고 읽습니다.

문자형 벡터로 구성된 셀형 배열

%c

공백을 포함하여 문자를 읽습니다.

문자형 배열

%[...]

대괄호 내에 지정된 문자가 포함된 가장 긴 문자 그룹을 읽습니다.

문자형 벡터로 구성된 셀형 배열

%[^...]

대괄호 내에 지정된 문자가 포함되지 않은, 비어 있지 않은 가장 긴 문자 그룹을 읽습니다.

문자형 벡터로 구성된 셀형 배열

%*...
instead of %

*로 지정된 문자와 일치하는 문자열을 무시합니다.

없음

%w...
instead of %

w로 지정된 필드 너비를 읽습니다. %f 형식은 %w.pf를 지원합니다. 여기서 w는 필드 너비이고 p는 정밀도입니다.

 

데이터를 읽을 횟수로, 양의 정수로 지정됩니다. N이 0보다 작으면 textread는 전체 파일을 읽습니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'WriteMode','append'

문자형 벡터의 최대 길이(단위: 바이트)로, 양의 정수로 지정됩니다.

관련 기호에 대해 문자를 무시하는 것으로, 'matlab', 'shell', 'c' 또는 'c++'로 지정됩니다.

동작

'matlab'

% 다음에 오는 문자를 무시합니다.

'shell'

# 다음에 오는 문자를 무시합니다.

'c'

/**/ 사이의 문자를 무시합니다.

'c++'

// 다음에 오는 문자를 무시합니다.

요소 사이의 구분 기호로, 하나 이상의 문자로 지정됩니다. textread가 일련의 연속된 delimiter 값을 읽는 경우에는 각 delimiter 값을 별도의 구분 기호로 처리합니다.

구분된 파일을 읽을 때 빈 셀에 지정된 값으로, double형 스칼라로 지정됩니다.

라인의 끝을 나타내는 문자로, 단일 문자 또는 '\r\n'으로 지정됩니다.

지수 문자를 지정하는 것으로, 지수 문자로 지정됩니다.

헤더 라인 수로, 양의 정수로 지정됩니다.

구분된 파일을 읽을 때 빈 셀에 지정된 값으로, double형 스칼라로 지정됩니다. textread는 일련의 연속된 공백 값을 읽을 때 이를 하나의 공백으로 처리합니다.

whitespace를 사용하여 텍스트에서 선행 공백과 후행 공백을 유지할 수 있습니다.

textread('myfile.txt','%s','whitespace','')
ans = 
    '   An  example      of preserving    spaces      '

동작

' '

공백

\b

백스페이스

\n

새 줄(Newline)

\r

캐리지 리턴

\t

가로 탭

버전 내역

R2006a 이전에 개발됨

모두 축소

R2012b: textread는 권장되지 않음

textread는 권장되지 않습니다. textscan을 대신 사용하십시오. textread를 제거할 계획은 없습니다.

텍스트 파일이나 문자열에서 형식 지정된 데이터를 읽어 들이려면 textscan 함수를 사용하십시오. textscan을 사용한 워크플로는 textread 함수를 사용하는 것에 비해 몇 가지 이점이 있습니다.

  • textread와 달리, textscan이 제공하는 출력값은 셀형 배열입니다.

  • textscan에 대한 호출 사이에 파일 포인터가 유지되므로, 데이터를 부분적으로 읽을 수 있습니다.

  • textscan 워크플로는 원격 위치에서 읽는 것을 지원합니다.

  • textscan에서 생성된 오류 메시지는 구문과 워크플로를 조정하는 방법에 대한 명확한 가이드를 제공합니다.

다음 표에서는 textread의 몇 가지 일반적인 사용법과 코드에서 대신 textscan을 사용하도록 업데이트하는 방법을 보여줍니다.

권장되지 않음권장됨
[date,level,x,y,answer] = textread('scan1.dat',...
    '%s %s %f %d %s',1)
filename = 'scan1.dat';
fileID = fopen(filename);
C = textscan(fileID,'%s %s %f %d %s');
fclose(fileID);
celldisp(C)
data = textread('data.csv','','delimiter',',',...
    'emptyvalue',NaN)
filename = 'data.csv';
fileID = fopen(filename);
C = textscan(fileID,'%f %f %f %f %u8 %f', ...
    'Delimiter',',','EmptyValue',NaN);
fclose(fileID);
celldisp(C)

참고 항목

| | |