HOWTO · MATLAB

MATLAB에서 문자열 연결하기

MATLAB에서 `strcat()` 함수를 사용하여 문자열을 연결할 수 있습니다.

이 페이지의 내용

strcat()를 사용하면 MATLAB의 텍스트 값을 결합할 수 있습니다. 크기가 호환되는 배열에서는 요소별로도 작동하므로 한 번의 호출로 여러 레이블이 붙은 값을 만들 수 있습니다. 입력 데이터형을 신중히 선택하세요. MATLAB 문자열 배열과 문자형 벡터는 + 연산자나 공백 처리 방식이 서로 다릅니다.

strcat()로 텍스트 결합하기

strcat(value1, value2, ...)를 호출하면 왼쪽에서 오른쪽 순서로 텍스트가 이어집니다. 문자형 벡터를 입력하면 strcat()는 결합하기 전에 각 입력값 끝의 공백 문자를 제거합니다. 의도치 않게 들어간 공백을 없애는 데는 유용하지만, 단어를 구분하기 위해 끝 공백에 의존할 수는 없습니다. 공백이 필요하면 구분자를 명시적으로 추가하세요.

다음 예제를 실행해 보세요. 예제 코드와 출력의 텍스트 및 레이블은 바이트 단위로 보존되어 영어로 표시됩니다.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

hello = 'Hello, ';
name = 'Alice';
result = strcat(hello, name, '!');
fprintf('%s\n', result);
Hello,Alice!

입력은 문자형 벡터이고 결과도 문자형 벡터입니다. MATLAB 문자열 스칼라에는 큰따옴표를 사용하세요. 예를 들어 strcat("Hello, ", "Alice!")는 문자열 스칼라를 반환합니다. 예제를 수정할 때는 특히 서로 다른 출처의 값을 결합하는 경우 문자열과 문자형 벡터 형식을 구분하세요.

strcat()로 배열 결합하기

배열 입력의 크기가 호환되면 strcat()는 대응하는 요소끼리 결합하고 그에 맞는 형태의 배열을 반환합니다. 스칼라 텍스트 값 하나를 배열의 각 요소와 결합할 수도 있습니다. 예를 들어 문자열 배열 names = ["Alice", "Bob", "Charlie"]에 strcat("Hello, ", names)를 적용하면 이름마다 인사말 하나씩 만들어집니다. MATLAB는 문자형 벡터를 담은 셀형 배열도 지원합니다. 예를 들면 names = {'Alice', 'Bob', 'Charlie'}와 같습니다. 주변 코드에서 셀형 배열을 사용한다면 셀형 배열 문법을 일관되게 사용하세요. 연산하려면 배열 차원이 호환되어야 합니다. MATLAB의 배열 규칙에 따라 입력 요소를 대응시킬 수 없다면 배열 형태를 조정하거나 스칼라 값끼리 결합하세요. 문자형 벡터의 셀형 배열과 문자열 배열은 서로 다른 데이터형이므로 서로 바꿔 쓸 수 있다고 가정하지 말고 이후 코드에 필요한 표현을 유지하세요.

구분자를 추가하고 공백 처리하기

strcat()는 문장 부호나 단어 사이의 구분자를 자동으로 넣지 않습니다. 문자형 벡터에서는 각 입력값 끝의 공백 문자도 제거하므로 별도의 ' ' 인수를 넣어도 잘려 나가 눈에 보이는 간격이 생기지 않습니다. 문자형 벡터 사이에 일반 공백을 넣으려면 sprintf()의 형식 문자열에 구분자를 포함하세요.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

first = 'Ada';
last = 'Lovelace';
fullName = sprintf('%s %s', first, last);
fprintf('%s\n', fullName);

이 코드는 두 이름 사이에 공백 하나를 넣어 출력합니다. MATLAB 문자열 스칼라에서는 strcat("Ada", " ", "Lovelace")처럼 명시한 문자열 구분자가 유지됩니다. 배열의 모든 요소 사이에 구분자를 넣으려면 구분자를 받는 join()을 사용하세요. strcat()는 대신 대응하는 요소끼리 결합합니다. 앞에 붙는 공백은 뒤에 붙는 공백과 다르게 처리되므로 형식이 예상과 다르면 실제 입력값을 확인하세요.

strcat()와 + 연산자 중 선택하기

문자형 벡터나 문자열 배열에 텍스트 결합 기능을 적용하려면 strcat()를 사용하세요. + 연산자는 MATLAB 문자열 배열을 결합하므로 두 피연산자가 모두 문자열일 때 간결하게 쓸 수 있습니다. 문자형 벡터에 +를 사용하면 문자 코드가 숫자로 변환되어 숫자 덧셈이 수행되며, 눈에 보이는 텍스트를 이어 붙이지 않습니다. 문자형 벡터를 문자열로 변환한 뒤 +를 사용하거나, 문자형 벡터를 결합할 때는 strcat()를 사용하세요.

예를 들어 "Good " + "morning"은 문자열 스칼라 두 개를 결합해 "Good morning"을 만듭니다. 반면 'A' + 'B'는 문자 코드를 요소별로 더합니다. 두 문자형 벡터 모두 요소가 하나이므로 차원이 호환되며, 결과는 숫자 값 131 (65 + 66)입니다. 프로그램 앞부분에서 값이 변환되었을 수 있으므로 따옴표만 보고 결과를 판단하지 마세요. 각 변수가 문자열 배열인지, 문자형 벡터인지, 셀형 배열인지 확인하세요. 이 데이터형 구분이 연산자를 선택하고 결과를 예측하는 핵심 기준입니다.