textread
(권장되지 않음) 텍스트 파일에서 데이터를 읽고 여러 출력값에 쓰기
textread
는 권장되지 않습니다. textscan
을 대신 사용하십시오. 자세한 내용은 호환성 관련 고려 사항을 참조하십시오.
구문
설명
[Var1,Var2,...,VarN] = textread(
은 전체 파일을 읽을 때까지 지정된 형식을 사용하여 파일 filename
,format
)filename
의 데이터를 변수 [Var1,Var2,...,VarN]
으로 읽어옵니다. 텍스트 파일 형식을 알고 있는 경우 textread
로 파일을 쉽게 읽어올 수 있습니다. textread
는 고정 형식 파일과 자유 형식 파일을 모두 처리합니다.
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.' }
입력 인수
filename
— 파일 이름
문자형 벡터 | string형 스칼라
파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.
format
— 형식
문자형 벡터 | string형 스칼라
형식으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 인수는 반환 인수의 개수와 유형을 결정합니다. 반환 인수의 개수는 format
의 내용에 의해 표시되는 항목의 개수입니다. format
은 변환 지정자의 서브셋과 C 언어 fscanf
루틴의 일반적인 규칙을 지원합니다. format
에 대한 값은 다음 표와 같습니다. format
에 들어 있는 공백 문자는 무시됩니다.
형식 | 동작 | 출력값 |
---|---|---|
리터럴 (일반 문자) | 일치하는 문자를 무시합니다. 예를 들어, | 없음 |
%d | 부호가 있는 정수 값을 읽습니다. | double형 배열 |
%u | 정수 값을 읽습니다. | double형 배열 |
%f | 부동소수점 값을 읽습니다. | double형 배열 |
%s | 공백 또는 구분 기호로 구분된 텍스트를 읽습니다. | 문자형 벡터로 구성된 셀형 배열 |
%q | 큰따옴표로 묶인 텍스트를 큰따옴표를 제하고 읽습니다. | 문자형 벡터로 구성된 셀형 배열 |
%c | 공백을 포함하여 문자를 읽습니다. | 문자형 배열 |
%[...] | 대괄호 내에 지정된 문자가 포함된 가장 긴 문자 그룹을 읽습니다. | 문자형 벡터로 구성된 셀형 배열 |
%[^...] | 대괄호 내에 지정된 문자가 포함되지 않은, 비어 있지 않은 가장 긴 문자 그룹을 읽습니다. | 문자형 벡터로 구성된 셀형 배열 |
%*... |
| 없음 |
%w... |
|
N
— 데이터를 읽을 횟수
양의 정수
데이터를 읽을 횟수로, 양의 정수로 지정됩니다. N이 0보다 작으면 textread
는 전체 파일을 읽습니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'WriteMode','append'
bufsize
— 문자형 벡터의 최대 길이
4095 (디폴트 값) | 양의 정수
문자형 벡터의 최대 길이(단위: 바이트)로, 양의 정수로 지정됩니다.
commentstyle
— 관련 기호에 대해 문자 무시
'matlab' | 'shell' | 'c' | 'c++'
관련 기호에 대해 문자를 무시하는 것으로, 'matlab'
, 'shell'
, 'c'
또는 'c++'
로 지정됩니다.
값 | 동작 | |
---|---|---|
'matlab' |
| |
'shell' |
| |
'c' |
| |
'c++' |
|
delimiter
— 요소 사이의 구분 기호
하나 이상의 문자
요소 사이의 구분 기호로, 하나 이상의 문자로 지정됩니다. textread
가 일련의 연속된 delimiter
값을 읽는 경우에는 각 delimiter 값을 별도의 구분 기호로 처리합니다.
emptyvalue
— 빈 셀에 지정된 값
0 (디폴트 값) | double형 스칼라
구분된 파일을 읽을 때 빈 셀에 지정된 값으로, double형 스칼라로 지정됩니다.
endofline
— 라인의 끝을 나타내는 문자
파일에서 자동 확인 (디폴트 값) | 단일 문자 | '\r\n'
라인의 끝을 나타내는 문자로, 단일 문자 또는 '\r\n'
으로 지정됩니다.
exchars
— 지수 문자
'eEdD'
(디폴트 값) | 지수 문자
지수 문자를 지정하는 것으로, 지수 문자로 지정됩니다.
headerlines
— 헤더 라인 수
양의 정수
헤더 라인 수로, 양의 정수로 지정됩니다.
whitespace
— 공백 문자로 처리할 문자로 구성된 벡터
' \b\t'
(디폴트 값) | ' '
| \b
| \n
| \r
| \t
구분된 파일을 읽을 때 빈 셀에 지정된 값으로, 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) |
참고 항목
textscan
| fopen
| readmatrix
| fscanf
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)