load: 파일의 변수를 작업 공간(Workspace)으로 로드
구문
load(filename)
load(filename,variables)
load(filename,'-ascii')
load(filename,'-mat')
load(filename,'-mat',variables)
S = load(___)
load filename
설명
load(
은 filename
)filename
에서 데이터를 로드합니다.
filename
이 MAT 파일인 경우load(filename)
은 MAT 파일의 변수를 MATLAB® 작업 공간으로 로드합니다.filename
이 ASCII 파일이면load(filename)
은 파일의 데이터를 포함하는 배정밀도 배열을 만듭니다.
load(
는 파일 확장자에 관계없이 filename
,'-mat')filename
을 MAT 파일로 처리합니다.
load
은 명령 형식의 구문입니다. 명령 형식에는 특수 문자가 더 적게 필요합니다. 괄호를 입력하거나 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 입력값은 쉼표 대신 공백을 사용하여 분리합니다. filename
예를 들어, durer.mat
라는 파일을 로드할 경우 다음 명령문은 동일합니다.
load durer.mat % command form load('durer.mat') % function form
위에 열거된 구문의 입력값 중 어느 것이든 포함시킬 수 있습니다. 예를 들어, 변수 X
를 로드하기 위해 다음 구문을 사용할 수 있습니다.
load durer.mat X % command form load('durer.mat','X') % function form
filename
등 입력값 중 변수가 하나라도 있는 경우에는 명령 형식을 사용하지 마십시오.
예제
MAT 파일에서 모든 변수 로드
예제 MAT 파일 gong.mat
에서 모든 변수를 로드합니다. 로드 작업 전과 후의 작업 공간 내용을 확인합니다.
disp('Contents of workspace before loading file:') whos disp('Contents of gong.mat:') whos('-file','gong.mat') load('gong.mat') disp('Contents of workspace after loading file:') whos
명령 구문을 사용하여 변수를 로드할 수도 있습니다. 이전에 로드된 변수를 지우고 load
작업을 다시 실행합니다.
clear y Fs load gong.mat
MAT 파일에서 특정 변수 로드
예제 파일 handel.mat
에서 변수 y
만 로드합니다. 작업 공간에 변수 y
가 이미 포함되어 있는 경우 load
작업은 이 변수를 파일의 데이터로 덮어씁니다.
load('handel.mat','y')
명령 구문을 사용하여 변수 y
를 로드할 수도 있습니다.
load handel.mat y
정규 표현식을 사용하여 특정 변수 로드
예제 파일 accidents.mat
의 내용을 확인합니다.
whos -file accidents.mat
Name Size Bytes Class Attributes datasources 3x1 2724 cell hwycols 1x1 8 double hwydata 51x17 6936 double hwyheaders 1x17 2758 cell hwyidx 51x1 408 double hwyrows 1x1 8 double statelabel 51x1 6596 cell ushwydata 1x17 136 double uslabel 1x1 138 cell
함수 구문을 사용하여 파일에서 이름이 'hwy'
로 시작하지 않는 변수를 모두 로드합니다.
load('accidents.mat', '-regexp', '^(?!hwy)...')
또는 명령 구문을 사용하여 동일한 변수를 로드합니다.
load accidents.mat -regexp '^(?!hwy)...'
변수 목록을 구조체형 배열로 로드
파일 durer.mat
에는 변수 X
, caption
및 map
이 들어 있습니다. 로드할 변수 이름으로 구성된 셀형 배열을 만듭니다.
filename = 'durer.mat'; myVars = {'X','caption'}; S = load(filename,myVars{:})
S = struct with fields:
X: [648×509 double]
caption: [2×28 char]
변수 X
와 caption
만 구조체형 배열 S
로 로드됩니다.
ASCII 파일 로드
여러 개의 4열 행렬에서 ASCII 파일을 만들고 데이터를 다시 배정밀도 배열로 로드합니다.
a = magic(4); b = ones(2, 4) * -5.7; c = [8 6 4 2]; save -ascii mydata.dat a b c clear a b c load mydata.dat -ascii
load
는 mydata
라는 double
형으로 구성된 배열을 만듭니다.
mydata
에 대한 정보를 확인합니다.
whos mydata
Name Size Bytes Class Attributes mydata 7x4 224 double
입력 인수
filename
— 파일의 이름
matlab.mat
(디폴트 값) | 문자형 벡터 | string형
파일의 이름으로, 문자형 벡터나 string형으로 지정됩니다. filename
을 지정하지 않을 경우 load
함수는 matlab.mat
라는 파일을 검색합니다.
filename
은 파일 확장자와 전체 경로 또는 부분 경로를 포함할 수 있습니다. filename
에 확장자가 없으면(즉, 마침표 뒤에 텍스트가 없음) load
는 filename.mat
라는 파일을 찾습니다. filename
에 .mat
이외의 확장자가 있으면 load
함수는 파일을 ASCII 데이터로 처리합니다.
명령 형식의 load
를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 그러나 filename
에 공백이 포함된 경우에는 인수를 작은따옴표로 묶어야 합니다. 예를 들면 load 'filename
withspace.mat'
과 같습니다.
ASCII 파일에는, 각 행의 요소 개수가 동일하며 숫자로 구성된, 사각형 테이블이 포함되어야 합니다. 파일 구분 기호(각
행에 포함된 요소 사이의 문자)는 공백, 쉼표, 세미콜론, 탭 문자 중 하나일 수 있습니다. 파일에는 MATLAB 주석(퍼센트
기호 %
로 시작하는 라인)이 포함될 수 있습니다.
예: 'myFile.mat'
데이터형: char
| string
variables
— 로드할 변수의 이름
문자형 벡터 | string형
로드할 변수의 이름으로, 하나 이상의 문자형 벡터 또는 문자열로 지정됩니다. 명령 형식의 load
를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. variables
는 다음 형식 중 하나일 수 있습니다.
variables 입력값의 형식 | 로드할 변수 |
---|---|
var1,...,varN | 나열된 변수를 로드하며, 개별 문자형 벡터 또는 string형으로 지정됩니다.'*' 와일드카드를 사용하여 패턴을 일치시킬 수 있습니다. 예를 들어, load('filename.mat','A*') 또는 load
filename.mat A* 는 파일에서 이름이 A 로 시작하는 변수를 모두 로드합니다. |
'-regexp', | 이름이 정규 표현식과 일치하는 변수 또는 필드만 로드하며, 문자형 벡터 또는 문자열로 지정됩니다. 예를 들어, load('filename.mat','-regexp','^Mon','^Tues') 또는 load
filename.mat -regexp ^Mon ^Tues 는 파일에서 이름이 Mon 이나 Tues 로 시작하는 변수만 로드합니다. |
데이터형: char
| string
출력 인수
S
— 로드된 변수(Loaded Variable) 또는 데이터
구조체형 배열 | m
xn
배열
filename
이 MAT 파일인 경우 변수가 로드되며, 구조체형 배열로 반환됩니다.
filename
이 ASCII 파일인 경우 데이터가 로드되며, double
형의 m
xn
배열로 반환됩니다. m
은 파일의 라인 개수와 동일하며, n
은 라인 하나에 포함된 값의 개수와 동일합니다.
알고리즘
load
함수에 대한 출력값을 지정하지 않을 경우 MATLAB은 로드된 파일의 이름(파일 확장자 제외)을 따서 명명된 변수를 만듭니다. 예를 들어, 다음 명령은
load mydata.dat
데이터를 mydata
라는 변수로 읽어옵니다.
변수 이름을 만들기 위해 load
는 filename
의 맨 앞에 있는 밑줄이나 숫자 앞에 X
를 붙이고 영문자가 아닌 다른 문자를 밑줄로 바꿉니다. 예를 들어, 다음 명령은
load 10-May-data.dat
X10_May_data
라는 변수를 만듭니다.
importdata: 파일에서 데이터 로드 (ASCII 뿐만 아니라 binary도)
구문
A = importdata(filename)
A = importdata('-pastespecial')
A = importdata(___,delimiterIn)
A = importdata(___,delimiterIn,headerlinesIn)
[A,delimiterOut,headerlinesOut]
= importdata(___)
설명
은 A
= importdata(___,delimiterIn
)delimiterIn
을 ASCII 파일 filename
또는 클립보드 데이터의 열 구분 기호로 해석합니다. delimiterIn
은 위 구문의 입력 인수와 함께 사용할 수 있습니다.
은 A
= importdata(___,delimiterIn
,headerlinesIn
)headerlinesIn+1
라인부터 시작하여 숫자형 데이터를 읽어 ASCII 파일 filename
또는 클립보드에서 데이터를 로드합니다.
[
는 위에 열거된 구문을 사용하여, 입력 ASCII 파일에서 감지된 구분 기호 문자는 A
,delimiterOut
,headerlinesOut
]
= importdata(___)delimiterOut
에, 감지된 헤더 라인의 수는 headerlinesOut
에 반환합니다.
예제
이미지 가져오기 및 표시
샘플 이미지 ngc6543a.jpg
를 가져와 표시합니다.
A = importdata('ngc6543a.jpg');
image(A)
헬퍼 함수 imread
가 colormap
과 alpha
에서 빈 결과를 반환하므로, 출력 인수 A
는 uint8
형 클래스입니다.
텍스트 파일 가져오기 및 구분 기호와 열 제목 지정
텍스트 편집기를 사용하여 열 제목을 가지고 공백으로 구분되는 myfile01.txt
라는 ASCII 파일을 생성합니다.
Day1 Day2 Day3 Day4 Day5 Day6 Day7 95.01 76.21 61.54 40.57 5.79 20.28 1.53 23.11 45.65 79.19 93.55 35.29 19.87 74.68 60.68 1.85 92.18 91.69 81.32 60.38 44.51 48.60 82.14 73.82 41.03 0.99 27.22 93.18 89.13 44.47 17.63 89.36 13.89 19.88 46.60
공백 구분 기호와 단일 열 제목을 지정하여 파일을 가져옵니다.
filename = 'myfile01.txt'; delimiterIn = ' '; headerlinesIn = 1; A = importdata(filename,delimiterIn,headerlinesIn);
열 3과 5를 봅니다.
for k = [3, 5] disp(A.colheaders{1, k}) disp(A.data(:, k)) disp(' ') end
Day3 61.5400 79.1900 92.1800 73.8200 17.6300 Day5 5.7900 35.2900 81.3200 0.9900 13.8900
텍스트 파일 가져오기 및 감지된 구분 기호 반환
텍스트 편집기를 사용하여 쉼표로 구분되는 myfile02.txt
라는 ASCII 파일을 생성합니다.
1,2,3 4,5,6 7,8,9
파일을 가져오고 출력 데이터와 감지된 구분 기호 문자를 표시합니다.
filename = 'myfile02.txt';
[A,delimiterOut]=importdata(filename)
A = 1 2 3 4 5 6 7 8 9 delimiterOut = ,
클립보드에서 데이터 가져오기
다음 라인을 클립보드로 복사합니다. 텍스트를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 복사(Copy)를 선택합니다.
1,2,3 4,5,6 7,8,9
다음을 입력하여 클립보드의 데이터를 MATLAB®으로 가져옵니다.
A = importdata('-pastespecial')
A = 1 2 3 4 5 6 7 8 9
입력 인수
filename
— 가져올 파일의 이름 및 확장자
문자형 벡터 | string형
가져올 파일의 이름과 확장자로, 문자형 벡터 또는 string형으로 지정됩니다. importdata
가 파일 확장자를 인식하는 경우 관련 파일 형식(예: MAT 파일의 경우 load
, 또는 스프레드시트의 경우 xlsread
)을 가져오도록 설계된 MATLAB 헬퍼 함수를 호출합니다. 그렇지 않은 경우, importdata
는 파일을 구분 기호가 사용된 ASCII 파일로 해석합니다.
ASCII 파일 및 스프레드시트의 경우, importdata
는 직사각형 형식의(즉, 행렬과 같은) 숫자형 데이터를 찾게 됩니다. 텍스트 헤더는 다음과 같이 숫자형 데이터의 위 또는 왼쪽에 나타날 수 있습니다.
파일 맨 위의 숫자형 데이터 위에 표시되는 열 제목 또는 파일 설명 텍스트입니다.
숫자형 데이터 왼쪽의 행 헤더입니다.
예: 'myFile.jpg'
또는 "myFile.jpg"
데이터형: char
| string
delimiterIn
— 열 구분 문자
문자형 벡터 | string형
열 구분 문자로, 문자형 벡터 또는 string형으로 지정됩니다. 디폴트 문자는 파일에서 해석됩니다. 탭에 대해서는 '\t'
를 사용합니다.
예: ','
또는 ","
예: ' '
또는 " "
데이터형: char
| string
headerlinesIn
— ASCII 파일의 텍스트 헤더 라인 수
음이 아닌 정수 스칼라
ASCII 파일의 텍스트 헤더 라인 수로, 음이 아닌 정수 스칼라로 지정됩니다. headerlinesIn
을 지정하지 않을 경우, importdata
함수는 파일에서 이 값을 검출합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
출력 인수
A
— 파일의 데이터
행렬 | 다차원 배열 | 스칼라 구조체형 배열
파일의 데이터로, 파일의 특성에 따라 행렬, 다차원 배열 또는 스칼라 구조체형 배열로 반환됩니다. 입력 파일의 파일 형식을 기반으로 하여 importdata
는 헬퍼 함수를 호출해 데이터를 읽습니다. 헬퍼 함수가 비어 있지 않은 결과를 두 개 이상 반환하는 경우, importdata
는 struct
형 배열에 출력값을 결합합니다.
다음 표에는 두 개 이상의 출력값을 반환할 수 있는 헬퍼 함수에 대한 파일 형식과 구조체형 배열 A
에서 가질 수 있는 필드가 나와 있습니다.
파일 형식 | 가질 수 있는 필드 | 클래스 |
---|---|---|
MAT 파일 | 각 변수에 대해 하나의 필드 | 각 변수와 연관된 클래스. |
ASCII 파일 및 스프레드시트 |
| ASCII 파일의 경우 |
이미지 |
|
|
오디오 파일 |
|
|
기타 대부분의 지원 파일 형식에 대한 MATLAB 헬퍼 함수는 하나의 출력값을 반환합니다. 각 출력값 클래스에 대한 자세한 내용은 가져오기와 내보내기에 지원되는 파일 형식의 함수 목록을 참조하십시오.
ASCII 파일 또는 스프레드시트가 열 제목 또는 행 제목 중 하나만 포함하는 경우 importdata
는 출력 구조체에 colheaders
또는 rowheaders
필드를 반환합니다. 여기서
colheaders
는 열 제목 텍스트의 마지막 라인만 포함합니다.importdata
는textdata
필드의 모든 텍스트를 저장합니다.rowheaders
는 파일 또는 워크시트가 하나의 열로 구성된 행 헤더를 포함하는 경우에만 생성됩니다.
delimiterOut
— 입력 ASCII 파일에서 감지된 열 구분자
문자형 벡터
입력 ASCII 파일에서 감지된 열 구분자로, 문자형 벡터로 반환됩니다.
headerlinesOut
— 입력 ASCII 파일에서 감지된 텍스트 헤더 라인 수
정수
입력 ASCII 파일에서 감지된 텍스트 헤더 라인 수로, 정수로 반환됩니다.
팁
숫자가 아닌 문자(예: 문자 데이터 열, 또는 형식이 지정된 날짜나 시간)가 열 제목 또는 행 제목 외부에 있는 ASCII 파일을 가져오려면
importdata
대신textscan
을 사용하십시오.
참고 항목
imread
| load
| readtable
| save
| textscan
| uiimport
| xlsread
textscan: 텍스트 파일이나 문자열에서 형식 지정된 데이터 읽어 들어기
구문
C = textscan(fileID,formatSpec)
C = textscan(fileID,formatSpec,N)
C = textscan(chr,formatSpec)
C = textscan(chr,formatSpec,N)
C = textscan(___,Name,Value)
[C,position]
= textscan(___)
설명
은 열려 있는 텍스트 파일의 데이터를 셀형 배열 C
= textscan(fileID
,formatSpec
)C
로 읽어 들입니다. 파일 ID fileID
로 텍스트 파일을 지정합니다. fileID
값은 fopen
으로 파일을 열어 구할 수 있습니다. 파일에서 읽기가 끝나면 fclose(fileID)
를 호출하여 파일을 닫습니다.
textscan
은 파일의 데이터가 formatSpec
의 변환 지정자와 일치하는지 확인합니다. textscan
은 전체 파일에 formatSpec
을 다시 적용하고 formatSpec
을 데이터와 일치시킬 수 없는 경우 중지합니다.
은 C
= textscan(fileID
,formatSpec
,N
)formatSpec
을 N
번 사용하여 파일 데이터를 읽어 들입니다. 여기서 N
은 양의 정수입니다. N
주기 이후에 파일에서 추가 데이터를 읽으려면 원래 fileID
를 사용하여 textscan
을 다시 호출하십시오. 동일한 파일 ID(fileID
)와 함께 textscan
을 호출하여 파일의 텍스트 스캔을 재개하는 경우, textscan
은 마지막 읽기가 종료된 지점에서 읽기를 자동으로 재개합니다.
은 문자형 벡터 C
= textscan(chr
,formatSpec
)chr
의 텍스트를 셀형 배열 C
로 읽어 들입니다. 문자형 벡터에서 텍스트를 읽어올 때는 textscan
을 반복 호출할 때마다 스캔이 처음부터 다시 시작됩니다. 마지막 위치에서 스캔을 다시 시작하려면 position
출력값을 요청하십시오.
textscan
은 문자형 벡터 chr
의 데이터가 formatSpec
에 지정된 형식과 일치하는지 확인합니다.
은 C
= textscan(chr
,formatSpec
,N
)formatSpec
을 N
번 사용합니다. 여기서 N
은 양의 정수입니다.
는 위에 열거된 구문에 C
= textscan(___,Name,Value
)Name,Value
쌍의 입력 인수를 하나 이상 사용하여 옵션을 지정합니다.
예제
부동소수점 숫자 읽기
부동소수점 숫자가 포함된 문자형 벡터 읽기
chr = '0.41 8.24 3.57 6.24 9.27'; C = textscan(chr,'%f');
formatSpec
내의 '%f'
지정자는 chr
의 각 필드에서 배정밀도 부동소수점 숫자가 있는지 확인하도록 textscan
에 지시합니다.
셀형 배열 C
의 내용을 표시합니다.
celldisp(C)
C{1} = 0.4100 8.2400 3.5700 6.2400 9.2700
각 값을 소수점 1자릿수로 자르며 동일한 문자형 벡터를 읽습니다.
C = textscan(chr,'%3.1f %*1d');
지정자 %3.1f
는 필드 너비 3자릿수와 정밀도 1을 나타냅니다. textscan
함수는 소수점 및 소수점 다음의 1자리를 포함하여 총 3자리를 읽습니다. 지정자 %*1d
는 나머지 숫자를 건너뛰도록 textscan
에 지시합니다.
셀형 배열 C
의 내용을 표시합니다.
celldisp(C)
C{1} = 0.4000 8.2000 3.5000 6.2000 9.2000
다른 데이터형 읽기
데이터 파일을 로드하고, 적합한 유형을 사용하여 각 열을 읽습니다.
파일 scan1.dat
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat');
파일을 열고, 적절한 변환 지정자를 사용하여 각 열을 읽습니다. textscan
은 1-by-9
셀형 배열 C
를 반환합니다.
fileID = fopen(filename); C = textscan(fileID,'%s %s %f32 %d8 %u %f %f %s %f'); fclose(fileID); whos C
Name Size Bytes Class Attributes C 1x9 2249 cell
C
의 각 셀의 MATLAB® 데이터형을 확인합니다.
C
C = 1×9 cell array
{3×1 cell} {3×1 cell} [3×1 single] [3×1 int8] [3×1 uint32] [3×1 double] [3×1 double] {3×1 cell} [3×1 double]
개별 요소를 검토합니다. C{1}
과 C{2}
는 셀형 배열입니다. C{5}
는 uint32
데이터형이므로 C{5}
의 처음 2개 요소는 32
비트 부호 없는 정수에 대한 최댓값이거나 intmax('uint32')
입니다.
celldisp(C)
C{1}{1} = 09/12/2005 C{1}{2} = 10/12/2005 C{1}{3} = 11/12/2005 C{2}{1} = Level1 C{2}{2} = Level2 C{2}{3} = Level3 C{3} = 12.3400 23.5400 34.9000 C{4} = 45 60 12 C{5} = 4294967295 4294967295 200000 C{6} = Inf -Inf 10 C{7} = NaN 0.0010 100.0000 C{8}{1} = Yes C{8}{2} = No C{8}{3} = No C{9} = 5.1000 + 3.0000i 2.2000 - 0.5000i 3.1000 + 0.1000i
리터럴 텍스트 제거하기
이전 예제에서 다룬 데이터의 두 번째 열의 각 필드에서 리터럴 텍스트 'Level'
을 제거합니다. 아래에 이 파일의 미리보기가 나와 있습니다.
파일을 열고, formatSpec 입력값의 리터럴 텍스트를 일치시킵니다.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat'); fileID = fopen(filename); C = textscan(fileID,'%s Level%d %f32 %d8 %u %f %f %s %f'); fclose(fileID); C{2}
ans = 3×1 int32 column vector
1
2
3
C
의 두 번째 셀의 MATLAB® 데이터형을 확인합니다. 1-by-9
셀형 배열 C
의 두 번째 셀은 이제 int32
데이터형이 됩니다.
disp( class(C{2}) )
int32
라인의 나머지 건너뛰기
이전 예제에서 다룬 파일의 첫 번째 열을 셀형 배열로 읽어 들이고, 라인의 나머지를 건너뜁니다.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat'); fileID = fopen(filename); dates = textscan(fileID,'%s %*[^\n]'); fclose(fileID); dates{1}
ans = 3×1 cell array
'09/12/2005'
'10/12/2005'
'11/12/2005'
textscan
은 1-by-1
셀형 배열 날짜를 반환합니다.
구분 기호 및 빈 값 변환 지정
파일 data.csv
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 이 파일에는 쉼표로 구분된 데이터가 들어 있으며, 빈 값도 들어 있습니다.
빈 셀을 -Inf
로 변환하고 파일을 읽습니다.
filename = fullfile(matlabroot,'examples','matlab','data.csv'); fileID = fopen(filename); C = textscan(fileID,'%f %f %f %f %u8 %f',... 'Delimiter',',','EmptyValue',-Inf); fclose(fileID); column4 = C{4}, column5 = C{5}
column4 = 4 -Inf
column5 = 2×1 uint8 column vector
0
11
textscan
은 1-by-6
셀형 배열 C
를 반환합니다. textscan
함수는 C{4}
의 빈 값을 -Inf
로 변환합니다. 여기서 C{4}
는 부동소수점 형식과 연결되어 있습니다. MATLAB®은 부호 없는 정수 -Inf
를 0
으로 나타내기 때문에 textscan
은 C{5}
의 빈 값을 -Inf
가 아니라 0
으로 변환합니다.
비어 있는 상태나 주석으로 처리할 텍스트 지정하기
파일 data2.csv
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 이 파일에는 주석으로 해석될 수 있는 데이터와, 'NA'
또는 'na'
처럼 빈 필드를 나타낼 수 있는 기타 요소가 들어 있습니다.
filename = fullfile(matlabroot,'examples','matlab','data2.csv');
textscan
이 주석이나 빈 값으로 취급해야 하는 입력값을 지정하고, 데이터를 C
로 스캔합니다.
fileID = fopen(filename); C = textscan(fileID,'%s %n %n %n %n','Delimiter',',',... 'TreatAsEmpty',{'NA','na'},'CommentStyle','//'); fclose(fileID);
출력값을 표시합니다.
celldisp(C)
C{1}{1} = abc C{1}{2} = def C{2} = 2 NaN C{3} = NaN 5 C{4} = 3 6 C{5} = 4 7
반복 구분 기호를 하나로 취급
파일 data3.csv
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 이 파일에는 반복되는 구분 기호가 들어 있습니다.
filename = fullfile(matlabroot,'examples','matlab','data3.csv');
반복 쉼표를 단일 구분 기호로 취급하려면 MultipleDelimsAsOne
파라미터를 사용하여 값을 1
(true
)로 설정하십시오.
fileID = fopen(filename); C = textscan(fileID,'%f %f %f %f','Delimiter',',',... 'MultipleDelimsAsOne',1); fclose(fileID); celldisp(C)
C{1} = 1 5 C{2} = 2 6 C{3} = 3 7 C{4} = 4 8
반복 변환 지정자 지정 및 숫자형 데이터 수집
이 예제에 대한 데이터 파일 grades.txt
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 이 파일에는 반복되는 구분 기호가 들어 있습니다.
filename = fullfile(matlabroot,'examples','matlab','grades.txt');
'%s'
형식을 4번 사용하여 열 제목을 읽습니다.
fileID = fopen(filename); formatSpec = '%s'; N = 4; C_text = textscan(fileID,formatSpec,N,'Delimiter','|');
파일에서 숫자형 데이터를 읽습니다.
C_data0 = textscan(fileID,'%d %f %f %f')
C_data0 = 1×4 cell array
[4×1 int32] [4×1 double] [4×1 double] [4×1 double]
CollectOutput
의 디폴트 값은 0
(false
)이므로 textscan
은 개별 배열로 숫자형 데이터의 각 열을 반환합니다.
파일 위치 표시자를 파일의 시작 부분으로 설정합니다.
frewind(fileID);
파일을 다시 읽고 CollectOutput을 1(true)로 설정하여 동일한 클래스의 연속 열을 단일 배열로 모읍니다. repmat
함수를 사용하여 %f
변환 지정자가 3번 나타나야 함을 지정할 수 있습니다. 이 기법은 형식이 여러 번 반복되는 경우에 유용합니다.
C_text = textscan(fileID,'%s',N,'Delimiter','|'); C_data1 = textscan(fileID,['%d',repmat('%f',[1,3])],'CollectOutput',1)
C_data1 = 1×2 cell array
[4×1 int32] [4×3 double]
테스트 점수(모두 double형)가 단일 4x3 배열에 수집됩니다.
파일을 닫습니다.
fclose(fileID);
따옴표로 묶인 텍스트 및 숫자형 필드 읽기 또는 건너뛰기
텍스트 파일에서 데이터의 첫 번째 열과 마지막 열을 읽습니다. 텍스트로 구성된 열과 정수 데이터로 구성된 열을 건너뜁니다.
파일 names.txt
를 로드하고 텍스트 편집기에서 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 이 파일에는 따옴표로 묶인 텍스트 열이 2개 있고, 이어서 정수 열이 1개 있으며, 마지막으로 부동소수점 숫자 열이 1개 들어 있습니다.
filename = fullfile(matlabroot,'examples','matlab','names.txt');
파일에서 데이터의 첫 번째 열과 마지막 열을 읽습니다. 변환 지정자 %q
를 사용하여 큰따옴표("
)로 묶인 텍스트를 읽습니다. %*q
는 따옴표로 묶인 텍스트를 건너뛰고 %*d
는 정수 필드를 건너뛰고 %f
는 부동소수점 숫자를 읽습니다. 'Delimiter'
이름-값 쌍의 인수를 사용하여 쉼표 구분자를 지정합니다.
fileID = fopen(filename,'r'); C = textscan(fileID,'%q %*q %*d %f','Delimiter',','); fclose(fileID);
Display the output. |textscan| returns a |1-by-2| cell array, |C|.
Double quotation marks enclosing the text are removed.
celldisp(C)
C{1}{1} = Smith, J. C{1}{2} = Bates, G. C{1}{3} = Curie, M. C{1}{4} = Murray, G. C{1}{5} = Brown, K. C{2} = 71.1000 69.3000 64.1000 133.0000 64.9000
다른 언어의 날짜 읽기
텍스트 편집기에서 파일 german_dates.txt
를 로드하고 파일 내용을 미리 봅니다. 아래에 스크린샷이 나와 있습니다. 값의 첫 번째 열에는 독일식 날짜가 포함되어 있고 두 번째 및 세 번째 열에는 숫자형 값이 들어 있습니다.
filename = fullfile(matlabroot,'examples','matlab','german_dates.txt');
파일을 엽니다. fopen
의 마지막 입력값으로 파일에 연결되어 있는 문자 인코딩 체계를 지정합니다.
fileID = fopen(filename,'r','n','ISO-8859-15');
파일을 읽습니다. %{dd % MMMM yyyy}D
지정자를 사용하여 파일의 날짜 형식을 지정합니다. DateLocale
이름-값 쌍의 인수를 사용하여 날짜의 로케일을 지정합니다.
C = textscan(fileID,'%{dd MMMM yyyy}D %f %f',... 'DateLocale','de_DE','Delimiter',','); fclose(fileID);
C의 첫 번째 셀 내용을 확인합니다. 시스템 로케일에 따라 MATLAB이 사용하는 언어로 날짜가 표시됩니다.
C{1}
ans = 3×1 datetime array
01 January 2014
01 February 2014
01 March 2014
디폴트가 아닌 제어 문자 읽기
sprintf
를 사용하여 데이터에서 디폴트가 아닌 이스케이프 시퀀스를 변환합니다.
폼 피드 문자 \f
를 포함하는 텍스트를 만듭니다. 그런 다음, textscan
을 사용하여 텍스트를 읽기 위해 sprintf
를 호출하여 폼 피드를 명시적으로 변환합니다.
lyric = sprintf('Blackbird\fsinging\fin\fthe\fdead\fof\fnight'); C = textscan(lyric,'%s','delimiter',sprintf('\f')); C{1}
ans = 7×1 cell array
'Blackbird'
'singing'
'in'
'the'
'dead'
'of'
'night'
textscan
이 1x1 셀형 배열 C
를 반환합니다.
스캔 재개하기
시작 부분 외의 위치에서 스캔을 재개합니다.
텍스트 스캔을 재개하면 textscan
이 항상 시작 부분부터 읽습니다. 다른 위치에서 스캔을 재개하려면 textscan
에 대한 초기 호출에서 2출력 인수 구문을 사용하십시오.
예를 들어, lyric
이라는 문자형 벡터를 생성해 보겠습니다. 문자형 벡터의 첫 번째 단어를 읽은 다음 스캔을 재개합니다.
lyric = 'Blackbird singing in the dead of night'; [firstword,pos] = textscan(lyric,'%9c',1); lastpart = textscan(lyric(pos+1:end),'%s');
입력 인수
fileID
— 파일 ID
숫자형 스칼라
열려 있는 텍스트 파일의 파일 ID로, 숫자로 지정됩니다. textscan
으로 파일을 읽으려면 fopen
을 사용하여 파일을 연 다음 fileID
를 가져와야 합니다.
데이터형: double
formatSpec
— 데이터 필드의 형식
문자형 벡터 | string형
데이터 필드의 형식으로, 하나 이상의 변환 지정자로 구성된 문자형 벡터 또는 string형으로 지정됩니다. textscan
은 입력값을 읽을 때 데이터가 formatSpec
에 지정된 형식과 일치하는지 확인합니다. textscan
은 데이터 필드와 일치하지 않는 부분이 나오면 읽기를 중지하고 읽은 모든 필드를 반환합니다.
변환 지정자의 개수에 따라 출력 배열 C
의 셀 개수가 결정됩니다.
숫자형 필드
다음 표에는 숫자형 입력값에 대해 사용 가능한 변환 지정자가 나와 있습니다.
숫자형 입력 유형 | 변환 지정자 | 출력값 클래스 |
---|---|---|
정수, 부호 있음 | %d | int32 |
%d8 | int8 | |
%d16 | int16 | |
%d32 | int32 | |
%d64 | int64 | |
정수, 부호 없음 | %u | uint32 |
%u8 | uint8 | |
%u16 | uint16 | |
%u32 | uint32 | |
%u64 | uint64 | |
부동소수점 숫자 | %f | double |
%f32 | single | |
%f64 | double | |
%n | double |
숫자형이 아닌 필드
다음 표에는 숫자형이 아닌 문자를 포함하는 입력값에 대해 사용 가능한 변환 지정자가 나와 있습니다.
숫자형이 아닌 입력 유형 | 변환 지정자 | 세부 정보 |
---|---|---|
문자 | %c | 구분 기호를 포함하여 단일 문자를 읽습니다. |
텍스트 배열 | %s | 문자형 벡터로 구성된 셀형 배열로 읽습니다. |
%q | 문자형 벡터로 구성된 셀형 배열로 읽습니다. 텍스트가 큰따옴표( 예: | |
날짜와 시간 | %D | 위의 |
%{ | 위의 datetime형 표시 형식에 대한 자세한 내용은 datetime형 배열의 예: | |
범주 | %C |
|
패턴 일치 | %[...] | 문자형 벡터로 구성된 셀형 배열로 괄호 내부의 문자와 일치하는 문자를 읽다가 일치하지 않는 첫 번째 문자에서 중지합니다. 세트에 예: |
%[^...] | 괄호 내부의 문자와 일치하지 않는 문자를 읽다가 일치하는 첫 번째 문자에서 중지합니다. 예: |
옵션 연산자
formatSpec
의 변환 지정자는 다음 순서로 표시되는 옵션 연산자를 포함할 수 있습니다(이해를 돕기 위해 공백을 포함함).
옵션 연산자로는 다음이 포함됩니다.
필드 및 문자 무시
특정 필드 또는 필드의 일부분을 무시하도록 지정하지 않을 경우
textscan
은 순차적으로 파일의 모든 문자를 읽습니다.필드나 문자형 필드의 일부분을 건너뛰려면 퍼센트 문자(%) 다음에 별표 문자(*)를 삽입하십시오.
연산자
수행 동작
%*
k
필드를 건너뜁니다.
k
는 건너뛸 필드를 식별하는 변환 지정자입니다.textscan
은 이러한 필드에 대해 출력 셀을 생성하지 않습니다.예:
'%s %*s %s %s %*s %*s %s'
(공백은 옵션임)는 텍스트
'Blackbird singing in the dead of night'
를
'Blackbird' 'in' 'the' 'night'
를 가진 4개의 출력 셀로 변환합니다.'%*
n
s'최대
n
개 문자를 건너뜁니다. 여기서n
은 필드의 문자 개수보다 작거나 같은 정수입니다.예:
'%*3s %s'
는'abcdefg'
를'defg'
로 변환합니다. 구분 기호가 쉼표인 경우, 동일한 구분 기호는'abcde,fghijkl'
을'de';'ijkl'
이 포함된 셀형 배열로 변환합니다.'%*
n
c'구분 기호 문자를 포함하여
n
개 문자를 건너뜁니다.필드 너비
textscan
은 필드 너비나 정밀도로 지정되는 개수만큼 또는 최초의 구분 기호가 나타날 때까지 문자나 숫자를 읽습니다(둘 중 먼저 해당하는 경우 적용). 숫자형 지수의 소수점, 부호(+
또는-
), 지수 문자, 숫자는 필드 너비 내의 문자 및 숫자로 계산됩니다. 복소수의 경우, 필드 너비는 실수부와 허수부의 개별 너비를 나타냅니다. 허수부의 경우, 필드 너비는 + 또는 −를 포함하지만i
또는j
는 포함하지 않습니다. 변환 지정자의 퍼센트 문자(%) 다음에 숫자를 삽입하여 필드 너비를 지정하십시오.예:
%5f
는'123.456'
을123.4
로 읽습니다.예:
%5c
는'abcdefg'
를'abcde'
로 읽습니다.필드 너비 연산자가 단일 문자와 함께 사용되면(
%c
),textscan
은 또한 구분 기호, 공백 및 라인 끝(EOL) 문자를 읽습니다.
예:%7c
는 공백을 포함하여 7개 문자를 읽습니다. 그러므로'Day and night'
를'Day and'
로 읽습니다.정밀도
부동소수점 숫자의 경우(
%n
,%f
,%f32
,%f64
), 읽으려는 소수점 자릿수를 지정할 수 있습니다.예:
%7.2f
는'123.456'
을123.45
로 읽습니다.리터럴 텍스트 무시
textscan
은formatSpec
변환 지정자에 추가된 텍스트를 무시합니다.예:
Level%u8
은'Level1'
을1
로 읽습니다.예:
%u8Step
은'2Step'
을2
로 읽습니다.
데이터형: char
| string
N
— formatSpec
을 적용할 횟수
Inf
(디폴트 값) | 양의 정수
formatSpec
을 적용할 횟수로, 양의 정수로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
chr
— 입력 텍스트
문자형 벡터 | string형
읽을 텍스트를 입력합니다.
데이터형: char
| string
이름-값 쌍의 인수
(옵션)Name,Value
인수가 쉼표로 구분되어 지정됩니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. Name
은 작은따옴표(' '
) 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN
과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.
C = textscan(fileID,formatSpec,'HeaderLines',3,'Delimiter',',')
는 데이터의 처음 세 라인을 건너뛴 다음, 쉼표를 구분 기호로 취급하여 남은 데이터를 읽습니다.이름은 대/소문자를 구분하지 않습니다.
'CollectOutput'
— 데이터를 결합할지에 대한 논리값 표시자
false
(디폴트 값) | true
데이터를 결합할지에 대한 논리값 표시자로, 'CollectOutput'
과 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다. true
인 경우 가져오기 함수는 동일한 MATLAB® 기본 클래스의 연속된 출력 셀들을 단일 배열로 결합합니다.
'CommentStyle'
— 무시할 텍스트(주석)를 지정하는 기호
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 | string형 배열
무시할 텍스트를 지정하는 기호로, 'CommentStyle'
과 함께 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 또는 string형 배열이 쉼표로 구분되어 지정됩니다.
예를 들어, '%'
와 같은 문자를 지정하여 동일한 라인에서 기호 다음의 텍스트를 무시할 수 있습니다. {'/*', '*/'}
와 같은 두 개의 문자형 벡터로 구성된 셀형 배열을 지정하여 이러한 시퀀스 사이의 모든 텍스트를 무시할 수 있습니다.
MATLAB은 필드 내부가 아니라 각 필드의 시작 부분에서만 주석을 확인합니다.
예: 'CommentStyle',{'/*', '*/'}
예: 'CommentStyle',["/*", "*/"}
데이터형: char
| string
'DateLocale'
— 날짜 읽기에 적용할 로케일
문자형 벡터 | string형
날짜 읽기에 적용할 로케일로, 'DateLocale'
과 함께
형식의 문자형 벡터가 쉼표로 구분되어 지정됩니다. 여기서 xx
_YY
xx
는 언어를 지정하는 ISO 639-1 두 자리 코드(소문자)이고, YY
는 국가를 지정하는 ISO 3166-1 alpha-2 코드(대문자)입니다. 로케일에 일반적으로 사용되는 값 목록은 datetime
함수에 대한 Locale
이름-값 쌍의 인수를 참조하십시오.
%D
형식 지정자를 사용하여 텍스트를 날짜로 읽을 때 textscan이 월 이름, 요일 이름, 약어를 어떤 로케일로 해석해야 하는지 DateLocale
로 지정할 수 있습니다.
예: 'DateLocale','ja_JP'
'Delimiter'
— 필드 구분 기호 문자
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 | string형 배열
필드 구분 기호 문자로, 'Delimiter'
와 함께 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 중 하나가 쉼표로 구분되어 지정됩니다. 여러 구분 기호는 문자형 벡터로 구성된 셀형 배열로 지정합니다.
예: 'Delimiter',{';','*'}
textscan
은 반복된 구분 기호 문자를 개별 구분 기호로 해석하고 출력 셀에 빈 값을 반환합니다.
각 데이터 행 내에서, 디폴트 필드 구분 기호는 공백입니다. 공백(Whitespace)은 공백('
'
), 백스페이스('\b'
), 탭('\t'
) 문자의 조합일 수 있습니다. 구분 기호를 지정하지 않을 경우 다음이 적용됩니다.
구분 기호 문자는 공백 문자와 동일합니다. 디폴트 공백 문자는
' '
,'\b'
,'\t'
입니다.'Whitespace'
이름-값 쌍의 인수를 사용하여 대체 공백 문자를 지정할 수 있습니다.textscan
은 반복된 공백 문자를 단일 구분 기호로 해석합니다.
다음 이스케이프 시퀀스 중 하나를 구분 기호로 지정할 경우, textscan
은 해당 시퀀스를 대응하는 제어 문자로 변환합니다.
\b | 백스페이스 |
\n | 새 줄(Newline) |
\r | 캐리지 리턴 |
\t | 탭 |
\\ | 백슬래시(\ ) |
데이터형: char
| string
'EmptyValue'
— 빈 숫자형 필드에 대해 반환된 값
NaN
(디폴트 값) | 스칼라
구분된 텍스트 파일에서 빈 숫자형 필드에 대해 반환된 값으로, 'EmptyValue'
와 함께 스칼라가 쉼표로 구분되어 지정됩니다.
'EndOfLine'
— 라인 끝(EOL) 문자
문자형 벡터 | string형
라인 끝(EOL) 문자로, 'EndOfLine'
과 함께 문자형 벡터 또는 string형이 쉼표로 구분되어 지정됩니다. 문자형 벡터는 '\r\n'
이거나 단일 문자를 지정해야 합니다. 일반적인 라인 끝(EOL) 문자는 새 줄(Newline) 문자('\n'
) 또는 캐리지 리턴('\r'
)이 있습니다. '\r\n'
을 지정할 경우 가져오기 함수는 \r
, \n
, 이 둘의 조합(\r\n
)을 모두 라인 끝(EOL) 문자로 처리합니다.
디폴트 라인 끝(EOL) 시퀀스는 파일의 내용에 따라 \n
, \r
, \r\n
중 하나입니다.
누락된 값이 있으면서 파일의 마지막 라인 끝에 라인 끝(EOL) 시퀀스가 있는 경우 가져오기 함수는 해당 필드에 대해 빈 값을 반환합니다. 이를 통해, 출력 셀형 배열 C
의 개별 셀이 같은 크기를 유지할 수 있습니다.
예: 'EndOfLine',':'
예: "EndOfLine",":"
데이터형: char
| string
'ExpChars'
— 지수 문자
'eEdD'
(디폴트 값) | 문자형 벡터 | string형
지수 문자로, 'ExpChars'
와 함께 문자형 벡터 또는 string형이 쉼표로 구분되어 지정됩니다. 디폴트 지수 문자는 e
, E
, d
, D
입니다.
데이터형: char
| string
'HeaderLines'
— 헤더 라인 수
0
(디폴트 값) | 양의 정수
헤더 라인 수로, 'HeaderLines'
와 함께 양의 정수가 쉼표로 구분되어 지정됩니다. textscan
은 현재 라인의 나머지를 포함하여 헤더 라인을 건너뜁니다.
'MultipleDelimsAsOne'
— 여러 구분 기호 처리 방식
0 (false)
(디폴트 값) | 1 (true)
여러 구분 기호 처리 방식으로, 'MultipleDelimsAsOne'
과 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다. true
인 경우, 가져오기 함수는 연속된 구분 기호를 단일 구분 기호로 취급합니다. 공백으로 구분된 반복 구분 기호도 단일 구분 기호로 취급됩니다. Delimiter
옵션도 지정해야 합니다.
예: 'MultipleDelimsAsOne',1
'ReturnOnError'
— textscan
이 읽기 또는 변환에 실패할 때의 동작
1 (true)
(디폴트 값) | 0 (false)
textscan
이 읽기 또는 변환에 실패할 때의 동작으로, 'ReturnOnError'
와 함께 true
또는 false
중 하나가 쉼표로 구분되어 지정됩니다. true
인 경우, textscan
은 오류 없이 종료되며 읽은 모든 필드를 반환합니다. false
인 경우, textscan
은 오류와 함께 종료되며 출력 셀형 배열을 반환하지 않습니다.
'TreatAsEmpty'
— 빈 값으로 취급할 자리 표시자 텍스트
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 | string형 배열
빈 값으로 취급할 자리 표시자 텍스트로, 'TreatAsEmpty'
와 함께 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 또는 string형 배열이 쉼표로 구분되어 지정됩니다. 이 옵션은 숫자형 필드에만 적용됩니다.
데이터형: char
| string
'Whitespace'
— 공백 문자
' \b\t'
(디폴트 값) | 문자형 벡터 | string형
공백 문자로, 'Whitespace'
와 함께 하나 이상의 문자로 구성된 문자형 벡터 또는 string형이 쉼표로 구분되어 지정됩니다. textscan
은 Whitespace
가 비어(''
) 있지 않거나 formatSpec
이 변환 지정자를 포함하지 않으면 공백 문자 char(32)
를 지정된 Whitespace
에 추가합니다.
다음 이스케이프 시퀀스 중 하나를 공백 문자로 지정할 경우, textscan
은 해당 시퀀스를 대응하는 제어 문자로 변환합니다.
\b | 백스페이스 |
\n | 새 줄(Newline) |
\r | 캐리지 리턴 |
\t | 탭 |
\\ | 백슬래시(\ ) |
데이터형: char
| string
'TextType'
— 텍스트의 출력 데이터형
'char'
(디폴트 값) | 'string'
텍스트의 출력 데이터형으로, 'TextType'
과 함께 'char'
이나 'string'
이 쉼표로 구분되어 지정됩니다. 값 'char'
을 지정하면 textscan
이 문자형 벡터로 구성된 셀형 배열로 텍스트를 반환합니다. 값 'string'
을 지정하면 textscan
이 string
형의 배열로 텍스트를 반환합니다.
출력 인수
C
— 파일 또는 텍스트 데이터
셀형 배열
파일 또는 텍스트 데이터로, 셀형 배열로 반환됩니다.
formatSpec
의 각 숫자형 변환 지정자의 경우, textscan
함수는 K
x1 MATLAB 숫자형 벡터를 출력 셀형 배열 C
로 반환합니다. 여기서 K
는 textscan
이 지정자와 일치하는 필드를 찾는 횟수입니다.
formatSpec
의 각 텍스트 변환 지정자(%s
, %q
, %[...]
)에 대하여, textscan
함수는 문자형 벡터로 구성된 K
x1 셀형 배열을 반환합니다. 여기서 K
는 textscan
이 지정자와 일치하는 필드를 찾는 횟수입니다. 필드 너비 연산자를 포함하는 각 문자 변환의 경우, textscan
은 K
xM
문자형 배열을 반환합니다. 여기서 M
은 필드 너비입니다.
formatSpec
의 각 datetime형 또는 categorical형 변환 지정자의 경우, textscan
함수는 K
x1 날짜/시간형 또는 categorical형 벡터를 출력 셀형 배열 C
로 반환합니다. 여기서 K
는 textscan
이 지정자와 일치하는 필드를 찾는 횟수입니다.
position
— 파일 또는 문자형 벡터 내의 위치
정수
스캔 종료 시 파일 또는 문자형 벡터 내의 위치로, double
형 클래스의 정수로 반환됩니다. 파일의 경우, ftell
(fileID)
는 textscan
을 호출한 후에 같은 값을 반환할 수 있습니다. 문자형 벡터의 경우, position
은 textscan
이 읽은 문자의 개수를 나타냅니다.
알고리즘
textscan
은 오버플로, 잘림 및 NaN
, Inf
, -Inf
의 사용과 관련된 MATLAB 규칙에 따라 숫자형 필드를 지정된 출력 유형으로 변환합니다. 예를 들어, MATLAB은 정수 NaN
을 0으로 나타냅니다. textscan
이 정수 형식 지정자(%d
또는 %u
)와 연결된 빈 필드를 찾는 경우 이 빈 값을 NaN
이 아니라 0으로 반환합니다.
데이터가 텍스트 변환 지정자와 일치하는 경우 textscan
은 구분 기호를 찾거나 라인 끝(EOL) 문자를 찾을 때까지 읽습니다. 데이터가 숫자형 변환 지정자와 일치하는 경우 textscan
은 숫자형이 아닌 문자를 찾을 때까지 읽습니다. 특정 변환 지정자와 일치하는 부분을 더 이상 찾을 수 없게 되면 textscan
은 formatSpec
의 그 다음 변환 지정자와 데이터가 일치하는지 확인하기 시작합니다. 부호(+
또는 -
), 지수 문자, 소수점은 숫자 문자로 간주됩니다.
부호 | 자릿수 | 소수점 | 자릿수 | 지수 문자 | 부호 | 자릿수 |
---|---|---|---|---|---|---|
부호 문자 하나를 읽습니다(있는 경우). | 1자리 이상의 숫자를 읽습니다. | 소수점 하나를 읽습니다(있는 경우). | 소수점이 있는 경우 바로 다음에 오는 1자리 이상의 숫자를 읽습니다. | 지수 문자 하나를 읽습니다(있는 경우). | 지수 문자가 있는 경우 부호 문자 하나를 읽습니다. | 지수 문자가 있는 경우 다음에 오는 1자리 이상의 숫자를 읽습니다. |
textscan
은 복소수를 가져오는 경우 전체 필드를 복소수 필드로 설정해, 실수부와 허수부를 지정된 숫자형으로 변환합니다(예: %d
또는 %f
). 유효한 형식의 복소수는 다음과 같습니다.
±<real> ±<imag>i|j | 예: |
±<imag>i|j | 예: |
textscan
은 복소수에 포함된 공백을 필드 구분 기호로 해석하므로 복소수에 공백을 포함시키지 마십시오.
참고 항목
dlmread
| fopen
| fread
| fscanf
| load
| readtable
| uiimport
| xlsread
'CAE > Enjoy Programming' 카테고리의 다른 글
[Python] ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다. (0) | 2019.08.08 |
---|---|
클립보드 구글번역 프로그램 ClipToGT (0) | 2017.12.12 |
[Trouble Shooting] 첨자 인덱스는 실수형 양의 정수(복소수형 정수가 아님)이거나 논리형이어야 합니다 (1) | 2017.11.29 |
VS Code (0) | 2017.11.29 |
matplotlib import 시, 에러 발생 대처방법 (0) | 2017.03.31 |