이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
string형 배열 생성하기
string형 배열은 텍스트 조각을 저장하고 텍스트를 데이터로 사용할 수 있는 일련의 함수를 제공합니다. 다른 유형의 배열을 활용하는 것과 마찬가지로, string형 배열을 형태 변경하고, 결합하고, 배열의 요소를 참조할 수 있습니다. 또한 문자열의 문자에 액세스하고 plus
연산자를 사용하여 문자열에 텍스트를 추가할 수 있습니다. string형 배열 내의 문자열을 재배열하려면 split
, join
, sort
와 같은 함수를 사용하십시오.
변수에서 string형 배열 생성하기
MATLAB®은 텍스트 조각을 저장할 수 있는 string형 배열을 제공합니다. string형 배열의 각 요소에는 1×n 크기의 문자 시퀀스가 들어 있습니다.
큰따옴표를 사용하여 string형을 생성할 수 있습니다.
str = "Hello, world"
str = "Hello, world"
다른 방법으로, string
함수를 사용하여 문자형 벡터를 string형으로 변환할 수 있습니다. chr
은 1×17 문자형 벡터입니다. str
은 이 문자형 벡터와 동일한 텍스트를 가진 1×1 문자열입니다.
chr = 'Greetings, friend'
chr = 'Greetings, friend'
str = string(chr)
str = "Greetings, friend"
[]
연산자를 사용하여 여러 개의 문자열을 포함하는 string형 배열을 만듭니다. str
은 6개의 문자열을 포함하는 2×3 string형 배열입니다.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]
str = 2x3 string
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
strlength
함수를 사용하여 str
의 각 문자열의 길이를 구합니다. 문자열에 포함된 문자 수를 확인하려면 length
가 아니라 strlength
를 사용해야 합니다.
L = strlength(str)
L = 2×3
7 6 6
6 8 3
다른 방법으로, string
함수를 사용하여 문자형 벡터로 구성된 셀형 배열을 string형 배열로 변환할 수 있습니다. MATLAB에서는 string형 배열의 문자열을 표시하는 데 큰따옴표를 사용하고, 셀형 배열의 문자형 벡터를 표시하는 데 작은따옴표를 사용합니다.
C = {'Mercury','Venus','Earth'}
C = 1x3 cell
{'Mercury'} {'Venus'} {'Earth'}
str = string(C)
str = 1x3 string
"Mercury" "Venus" "Earth"
string
함수를 사용하면 문자형 벡터는 물론 숫자형 값, datetime형 값, duration형 값, categorical형 값을 문자열로 변환할 수 있습니다.
숫자형 배열을 string형 배열로 변환합니다.
X = [5 10 20 3.1416]; string(X)
ans = 1x4 string
"5" "10" "20" "3.1416"
datetime형 값을 문자열로 변환합니다.
d = datetime('now');
string(d)
ans = "24-Jul-2022 22:17:37"
또한 readtable
, textscan
, fscanf
함수를 사용하여 파일에서 string형 배열로 텍스트를 읽어 올 수 있습니다.
빈 문자열과 누락된 문자열 생성하기
string형 배열에는 빈 값과 누락된 값이 모두 포함될 수 있습니다. 빈 문자열에는 0개의 문자가 있습니다. 빈 문자열을 표시할 경우, 큰따옴표 쌍이 중간에 아무것도 없이 반환됩니다(""
). 누락된 string형은 숫자형 배열에서의 NaN
과 같습니다. 이는 문자열은 string형 배열에 누락된 값이 있음을 나타냅니다. 누락된 문자열을 표시할 경우, <missing>
과 같이 따옴표 없이 반환됩니다.
strings
함수를 사용하여 빈 string형 배열을 생성합니다. strings
를 인수 없이 호출하면 빈 문자열이 반환됩니다. 참고로, str
의 크기는 0×0이 아니라 1×1입니다. 그러나 str
에는 0개 문자가 있습니다.
str = strings
str = ""
작은따옴표를 사용하여 빈 문자형 벡터를 생성합니다. 참고로, chr
의 크기는 0×0입니다.
chr = ''
chr = 0x0 empty char array
모든 요소가 빈 문자열인 string형 배열을 생성합니다. strings
함수를 사용하여 string형 배열을 사전할당할 수 있습니다.
str = strings(2,3)
str = 2x3 string
"" "" ""
"" "" ""
누락된 문자열을 생성하려면 string
함수를 사용하여 누락된 값을 변환하십시오. 누락된 문자열이 <missing>
으로 표시됩니다.
str = string(missing)
str = <missing>
빈 문자열과 누락된 문자열이 모두 있는 string형 배열을 생성할 수 있습니다. ismissing
함수를 사용하여 누락된 값이 있는 문자열에 해당하는 요소를 확인합니다. 참고로, 빈 문자열은 누락된 문자열이 아닙니다.
str(1) = ""; str(2) = "Gemini"; str(3) = string(missing)
str = 1x3 string
"" "Gemini" <missing>
ismissing(str)
ans = 1x3 logical array
0 0 1
누락된 문자열을 다른 문자열과 비교합니다. 누락된 문자열을 다른 누락된 문자열과 비교하는 경우에도 결과는 항상 0
(false
)입니다.
str = string(missing);
str == "Gemini"
ans = logical
0
str == string(missing)
ans = logical
0
string형 배열의 요소에 액세스하기
string형 배열은 인덱싱과 형태 변경 같은 배열 연산을 지원합니다. 배열 인덱싱을 사용하여 str
의 첫 번째 행과 모든 열에 액세스합니다.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]; str(1,:)
ans = 1x3 string
"Mercury" "Gemini" "Apollo"
str
의 두 번째 행에 있는 두 번째 요소에 액세스합니다.
str(2,2)
ans = "Skylab B"
str
의 경계 바깥에 새 문자열을 할당합니다. MATLAB은 배열을 확장하고 값이 할당되지 않은 요소를 누락된 값으로 채웁니다.
str(3,4) = "Mir"
str = 3x4 string
"Mercury" "Gemini" "Apollo" <missing>
"Skylab" "Skylab B" "ISS" <missing>
<missing> <missing> <missing> "Mir"
string형 내의 문자에 액세스하기
중괄호 {}
를 사용하여 string형 배열의 요소를 참조해 문자에 직접 액세스할 수 있습니다. string형의 요소 내의 문자에 액세스하여 수정해야 하는 경우 중괄호를 사용하십시오. 중괄호를 사용하여 인덱싱하면 string형 배열이나 문자형 벡터로 구성된 셀형 배열에 사용할 수 있는 코드에 대한 호환성이 제공됩니다. 그러나 가능하다면, string형 내의 문자를 다룰 때는 항상 string 함수를 사용하십시오.
중괄호를 사용하여 두 번째 행에 있는 두 번째 요소에 액세스합니다. chr
은 string형이 아니라 문자형 벡터입니다.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]; chr = str{2,2}
chr = 'Skylab B'
문자형 벡터에 액세스하고 처음 세 개의 문자를 반환합니다.
str{2,2}(1:3)
ans = 'Sky'
문자열에서 공백 문자를 찾아 대시로 바꿉니다. isspace
함수를 사용하여 문자열 내의 개별 문자를 검사합니다. isspace
는 공백 문자가 있는 위치에 true 값이 포함된 논리형 벡터를 반환합니다. 마지막으로, 수정된 문자열 요소 str(2,2)
를 표시합니다.
TF = isspace(str{2,2})
TF = 1x8 logical array
0 0 0 0 0 0 1 0
str{2,2}(TF) = "-";
str(2,2)
ans = "Skylab-B"
참고로 이 경우, 중괄호 인덱싱에 의지하지 않고 replace
함수를 사용하여 공백을 대체할 수도 있습니다.
replace(str(2,2)," ","-")
ans = "Skylab-B"
문자열을 string형 배열에 결합하기
다른 유형의 배열을 결합할 때와 마찬가지로 문자열을 string형 배열로 결합합니다.
대괄호 []
를 사용하여 두 개의 string형 배열을 결합합니다.
str1 = ["Mercury","Gemini","Apollo"]; str2 = ["Skylab","Skylab B","ISS"]; str = [str1 str2]
str = 1x6 string
"Mercury" "Gemini" "Apollo" "Skylab" "Skylab B" "ISS"
str1
과 str2
를 전치합니다. 두 string형을 결합한 다음 열 제목을 string형 배열에 세로로 결합합니다. 문자형 벡터를 string형 배열로 결합하면 문자형 벡터가 자동으로 문자열로 변환됩니다.
str1 = str1'; str2 = str2'; str = [str1 str2]; str = [["Mission:","Station:"] ; str]
str = 4x2 string
"Mission:" "Station:"
"Mercury" "Skylab"
"Gemini" "Skylab B"
"Apollo" "ISS"
문자열에 텍스트 추가하기
문자열에 텍스트를 추가하려면 plus
연산자 +
를 사용하십시오. plus
연산자는 문자열에 텍스트를 추가하지만 string형 배열의 크기를 변경하지는 않습니다.
이름으로 구성된 배열에 성을 추가합니다. 문자열에 문자형 벡터를 추가하는 경우 문자형 벡터가 자동으로 문자열로 변환됩니다.
names = ["Mary";"John";"Elizabeth";"Paul";"Ann"]; names = names + ' Smith'
names = 5x1 string
"Mary Smith"
"John Smith"
"Elizabeth Smith"
"Paul Smith"
"Ann Smith"
여러 성을 추가합니다. string형 배열, 또는 문자형 벡터로 구성된 셀형 배열의 텍스트를 string형 배열에 추가할 수 있습니다. 비 스칼라 배열을 추가할 경우 추가하는 배열의 크기가 같아야 합니다.
names = ["Mary";"John";"Elizabeth";"Paul";"Ann"]; lastnames = ["Jones";"Adams";"Young";"Burns";"Spencer"]; names = names + " " + lastnames
names = 5x1 string
"Mary Jones"
"John Adams"
"Elizabeth Young"
"Paul Burns"
"Ann Spencer"
누락된 문자열을 추가합니다. 플러스 연산자를 사용하여 누락된 문자열을 추가할 경우 누락된 문자열이 출력됩니다.
str1 = "Jones";
str2 = string(missing);
str1 + str2
ans = <missing>
string형 배열을 분할, 결합(Join), 정렬하기
MATLAB에서는 string형 배열에 사용할 수 있는 일련의 함수를 제공합니다. 예를 들어, split
, join
, sort
함수를 사용하여 이름이 성을 기준으로 사전순으로 나열되도록 string형 배열 names
를 재배열할 수 있습니다.
공백 문자에서 names
를 분할합니다. 분할을 수행하면 names
가 5×1 string형 배열에서 5×2 배열로 변경됩니다.
names = ["Mary Jones";"John Adams";"Elizabeth Young";"Paul Burns";"Ann Spencer"]; names = split(names)
names = 5x2 string
"Mary" "Jones"
"John" "Adams"
"Elizabeth" "Young"
"Paul" "Burns"
"Ann" "Spencer"
성이 첫 번째 열에 오도록 names
의 열을 전환합니다. 각각의 성 뒤에 쉼표를 추가합니다.
names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','
names = 5x2 string
"Jones," "Mary"
"Adams," "John"
"Young," "Elizabeth"
"Burns," "Paul"
"Spencer," "Ann"
성과 이름을 결합합니다. join
함수는 결합되는 문자열 사이에 공백 문자를 표시합니다. 결합 후 names
는 5×1 string형 배열이 됩니다.
names = join(names)
names = 5x1 string
"Jones, Mary"
"Adams, John"
"Young, Elizabeth"
"Burns, Paul"
"Spencer, Ann"
사전순으로 나열되도록 names
의 요소를 정렬합니다.
names = sort(names)
names = 5x1 string
"Adams, John"
"Burns, Paul"
"Jones, Mary"
"Spencer, Ann"
"Young, Elizabeth"
참고 항목
string
| strings
| strlength
| ismissing
| isspace
| plus
| split
| join
| sort