Main Content

strread

(권장되지 않음) 문자열에서 형식 지정된 데이터 읽기

strread는 권장되지 않습니다. textscan을 대신 사용하십시오.

설명

예제

A = strread(str)은 입력 문자형 벡터 str의 숫자형 데이터를 1×N 벡터 A로 읽어옵니다. 여기서 Nstr에서 공백으로 구분된 숫자의 개수와 같습니다. 이 구문은 숫자형 데이터가 포함된 문자형 벡터에 사용하십시오.

예제

[A,B,...] = strread(str)은 문자형 벡터 입력값 str의 숫자형 데이터를 스칼라 출력 변수(A, B 등)로 읽어옵니다. 출력 변수 개수는 str에서 공백으로 구분된 숫자의 개수와 같아야 합니다.

예제

[A,B,...] = strread(str,format)은 지정된 형식을 사용하여 str의 데이터를 변수(A, B 등)로 읽어옵니다. 출력 변수의 개수는 format 인수 내 형식 지정자(예: %s 또는 %d) 개수와 같아야 합니다. 형식 지정자가 하나인 경우에 한해 str의 모든 데이터를 하나의 출력 변수로 읽어올 수 있습니다.

strread 형식에 유효한 형식 지정자가 나와 있습니다.

예제

[A,B,...] = strread(str,format,N)format 문자형 벡터가 지정하는 대로 str에서 처음 N개의 값을 읽어옵니다. 여기서 N은 0보다 큰 정수입니다. N이 -1이면 strreadstr의 모든 값을 읽어옵니다. str에 숫자형 데이터만 포함된 경우 format을 빈 문자형 벡터('')로 설정할 수 있습니다.

예제

[A,B,...] = strread(___,Name,Value)Name,Value 인수를 사용하여 strread를 사용자 지정합니다. str에 숫자형 데이터만 포함된 경우 format을 빈 문자형 벡터('')로 설정할 수 있습니다.

예제

모두 축소

숫자가 공백으로 구분되어 포함된 문자형 벡터를 만듭니다. strread를 사용하여 숫자형 데이터를 숫자형 배열로 읽어옵니다.

str = '0.41 8.24 3.57 6.24 9.27';
a = strread(str)
a = 1×5

    0.4100    8.2400    3.5700    6.2400    9.2700

숫자가 공백으로 구분되어 포함된 문자형 벡터를 만듭니다. strread를 사용하여 숫자형 데이터를 개별 변수로 읽어옵니다.

str = '0.41 8.24 3.57 6.24 9.27';
[a, b, c, d, e] = strread(str)
a = 0.4100
b = 8.2400
c = 3.5700
d = 6.2400
e = 9.2700

숫자가 공백으로 구분되어 포함된 문자형 벡터를 만듭니다. strread를 사용하여 문자형 벡터의 처음 3개 숫자만 읽어오고 데이터 형식을 부동소수점으로 지정합니다.

str = '0.41 8.24 3.57 6.24 9.27';
a = strread('0.41 8.24 3.57 6.24 9.27', '%4.2f', 3)
a = 3×1

    0.4100
    8.2400
    3.5700

숫자가 공백으로 구분되어 포함된 문자형 벡터를 만듭니다. 형식 %3.1f를 지정하여 데이터를 소수점 1자릿수로 자릅니다. 두 번째 지정자 %*1dstrread가 나머지 소수점 자릿수를 읽지 않도록 지시합니다.

str = '0.41 8.24 3.57 6.24 9.27';
a = strread(str, '%3.1f %*1d')
a = 5×1

    0.4000
    8.2000
    3.5000
    6.2000
    9.2000

숫자가 공백으로 구분되어 포함된 문자형 벡터를 만듭니다. 6개 숫자를 2개의 변수로 읽어옵니다. 형식 지정자 %f를 두 번 사용하여 각 출력값에 동일한 형식을 적용합니다. 지정된 형식의 개수는 출력값 개수와 일치해야 합니다.

str = '0.41 8.24 3.57 6.24 9.27 3.29';
[a, b] = strread(str, '%f %f')
a = 3×1

    0.4100
    3.5700
    9.2700

b = 3×1

    8.2400
    6.2400
    3.2900

단어와 숫자가 공백으로 구분되어 있고 각 단어-숫자 쌍이 쉼표로 구분되어 포함된 문자형 벡터를 만듭니다.

str = 'Section 4, Page 7, Line 26';

strread를 사용하여 텍스트를 하나의 변수로 읽어오고 숫자형 데이터를 다른 변수로 읽어옵니다. 형식 입력 '%s'는 첫 번째 출력값이 공백 문자로 구분된 문자형 벡터가 되도록 지정합니다. '%d,'는 두 번째 출력값이 부호 있는 정수 값이 되도록 지정하며, ',' 문자는 무시됩니다.

[name, value] = strread(str, '%s %d,')
name = 3x1 cell
    {'Section'}
    {'Page'   }
    {'Line'   }

value = 3×1

     4
     7
    26

각 단어-숫자 쌍이 쉼표로 구분된 상태로 단어와 숫자가 포함된 문자형 벡터를 만듭니다.

str = 'Section 4, Page 7, Line 26';

공백 대신 쉼표로 구분하여 문자형 벡터를 읽어옵니다. '%s' 형식을 사용하여 문자형 벡터를 읽어오도록 지정합니다. 3개의 출력값이 지정되었으므로 3개의 형식을 지정해야 합니다.

[a, b, c] = strread(str,'%s %s %s', 'delimiter', ',')
a = 1x1 cell array
    {'Section 4'}

b = 1x1 cell array
    {'Page 7'}

c = 1x1 cell array
    {'Line 26'}

입력 인수

모두 축소

입력 텍스트로, 문자형 배열 또는 string형 스칼라로 지정됩니다.

데이터형: char | string

출력 형식으로, 반환 인수의 개수와 유형을 결정하는 출력값의 형식과 데이터형이 문자형 배열 또는 string형 스칼라로 지정됩니다. 반환 인수의 개수는 format 문자형 벡터의 변환 지정자 개수와 일치해야 합니다.

strread 함수는 전체 문자형 벡터를 읽을 때까지 계속 str을 읽습니다. str의 요소보다 형식 지정자가 적으면 strread는 형식 지정자를 처음부터 다시 적용합니다.

format 문자형 벡터는 C 언어 fscanf 루틴의 일부 변환 지정자와 규칙을 지원합니다. format 문자형 벡터의 공백 문자는 무시됩니다.

strread 형식

형식

동작

출력값

리터럴

(일반 문자)

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

없음

%d

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

double형 배열

%u

정수 값을 읽습니다.

double형 배열

%f

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

double형 배열

%s

공백으로 구분된 문자형 벡터를 읽습니다.

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

%q

큰따옴표로 묶인 문자형 벡터를 큰따옴표를 제하고 읽습니다.

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

%c

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

문자형 배열

%[...]

대괄호 내에 지정된 문자가 포함된 가장 긴 문자형 벡터를 읽습니다.

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

%[^...]

대괄호 내에 지정된 문자가 포함되지 않은, 비어 있지 않은 가장 긴 문자형 벡터를 읽습니다.

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

%*...

* 다음의 문자를 무시합니다.

출력값 없음

%w...

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

 

데이터형: char | string

값 개수로, 0보다 큰 정수로 지정됩니다. N-1이면 strreadstr에서 가능한 모든 값을 찾습니다.

이름-값 인수

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

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

예: strread(str,'','whitespace','\t')

공백 문자로, 문자형 벡터 또는 string형 배열로 지정됩니다. strread는 입력 기호로 지정된 문자를 공백으로 처리합니다. 디폴트 값은 '\b\r\n\t'입니다.

기호공백 문자
\b백스페이스
\n새 줄(Newline)
\r캐리지 리턴
\t가로 탭
\\백슬래시
%%퍼센트 기호
''작은따옴표

구분 기호 문자로, 구분 기호가 포함된 문자형 벡터 또는 string형 스칼라로 지정됩니다. 디폴트 값은 하나 이상의 공백 문자입니다. 예를 들어, 문자형 벡터 str에서 세미콜론을 구분 기호로 사용하는 경우 'delimiter'';'으로 지정하십시오.

지수 문자로, 지수로 처리되는 문자(예: 숫자 4.3e12의 'e')가 포함된 문자형 벡터 또는 string형 스칼라로 지정됩니다. 디폴트 값은 'eEdD'입니다.

버퍼 크기로, 최대 문자형 벡터 길이(단위: 바이트)를 포함하는 양의 정수로 지정됩니다. 디폴트 값은 4095입니다.

주석 스타일로, strread가 주석을 지정하는 데 사용하는 기호의 스타일이 포함된 문자형 벡터 또는 string형 스칼라로 지정됩니다. strread는 해당 기호에 의해 지정된 문자를 무시합니다.

스타일동작
'matlab'% 다음에 오는 문자를 무시합니다.
'shell'# 다음에 오는 문자를 무시합니다.
'c'/**/ 사이의 문자를 무시합니다.
'c++'// 다음에 오는 문자를 무시합니다.

구분된 파일의 빈 숫자형 필드에 대해 반환하는 값으로, 숫자형 스칼라로 지정됩니다.

  • 입력 문자형 벡터를 새 줄 문자(\n)로 종료하면 strread는 더 작은 크기의 배열을 emptyvalue 문자로 채워 같은 크기의 배열을 반환합니다.

    [A,B,C] = strread(sprintf('5,7,1,9\n'),'%d%d%d', ...
                 'delimiter', ',', 'emptyvalue',NaN)
    A =
         5
         9
    B =
         7
       NaN
    C =
         1
       NaN

    이 예제의 입력 문자형 벡터에서 \n을 제거하면 배열 A는 2×1 배열을 유지하지만, BC는 1×1 배열이 됩니다.

버전 내역

R2006a에 개발됨

참고 항목

|