MATLAB-문자열
MATLAB에서 문자열을 만드는 것은 매우 간단합니다. 사실 우리는 여러 번 사용했습니다. 예를 들어, 명령 프롬프트에 다음을 입력합니다.
my_string = 'Tutorials Point'
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
my_string = Tutorials Point
MATLAB은 모든 변수를 배열로 간주하고 문자열은 문자형 배열로 간주합니다. 사용하자whos 위에서 생성 된 변수를 확인하는 명령-
whos
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
Name Size Bytes Class Attributes
my_string 1x16 32 char
흥미롭게도 다음과 같은 숫자 변환 함수를 사용할 수 있습니다. uint8 또는 uint16문자열의 문자를 숫자 코드로 변환합니다. 그만큼char 함수는 정수 벡터를 다시 문자로 변환합니다.
예
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string) % 8-bit ascii values
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) % 16-bit ascii values
str_back_to_char = char(str_16bit)
파일을 실행하면 다음 결과가 표시됩니다.
str_ascii =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
str_16bit =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
직사각형 문자 배열
지금까지 논의한 문자열은 1 차원 문자 배열입니다. 그러나 그 이상을 저장해야합니다. 프로그램에 더 많은 차원의 텍스트 데이터를 저장해야합니다. 이것은 직사각형 문자 배열을 생성함으로써 가능합니다.
직사각형 문자 배열을 만드는 가장 간단한 방법은 필요에 따라 세로 또는 가로로 2 개 이상의 1 차원 문자 배열을 연결하는 것입니다.
다음 방법 중 하나로 문자열을 수직으로 결합 할 수 있습니다.
MATLAB 연결 연산자 사용 []세미콜론 (;)으로 각 행을 구분합니다. 이 방법에서 각 행은 동일한 수의 문자를 포함해야합니다. 길이가 다른 문자열의 경우 필요에 따라 공백 문자로 채워야합니다.
사용 char함수. 문자열의 길이가 다른 경우 char은 각 행이 동일한 문자 수를 갖도록 짧은 문자열을 후행 공백으로 채 웁니다.
예
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
doc_profile = ['Zara Ali '; ...
'Sr. Surgeon '; ...
'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
'RN Tagore Cardiology Research Center')
파일을 실행하면 다음 결과가 표시됩니다.
doc_profile =
Zara Ali
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali
Sr. Surgeon
RN Tagore Cardiology Research Center
다음 방법 중 하나로 문자열을 수평으로 결합 할 수 있습니다.
MATLAB 연결 연산자를 사용하여 []및 입력 문자열을 쉼표 또는 공백으로 분리하는 단계를 포함합니다. 이 메서드는 입력 배열의 모든 후행 공백을 유지합니다.
문자열 연결 기능을 사용하여, strcat. 이 방법은 입력에서 후행 공백을 제거합니다.
예
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)
파일을 실행하면 다음 결과가 표시됩니다.
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
문자열을 셀형 배열로 결합
이전 논의에서 배열의 모든 문자열이 동일한 길이 여야하므로 길이가 다른 문자열을 결합하는 것이 고통 스러울 수 있음이 분명합니다. 길이를 동일하게하기 위해 문자열 끝에 공백을 사용했습니다.
그러나 문자열을 결합하는보다 효율적인 방법은 결과 배열을 셀형 배열로 변환하는 것입니다.
MATLAB 셀형 배열은 배열에 다양한 크기와 유형의 데이터를 포함 할 수 있습니다. 셀형 배열은 다양한 길이의 문자열을 저장하는보다 유연한 방법을 제공합니다.
그만큼 cellstr 함수는 문자형 배열을 문자열로 구성된 셀형 배열로 변환합니다.
예
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
파일을 실행하면 다음 결과가 표시됩니다.
{
[1,1] = Zara Ali
[2,1] = Sr. Surgeon
[3,1] = R N Tagore Cardiology Research Center
}
MATLAB의 문자열 함수
MATLAB은 문자열을 생성, 결합, 구문 분석, 비교 및 조작하는 다양한 문자열 함수를 제공합니다.
다음 표는 MATLAB의 문자열 함수에 대한 간략한 설명을 제공합니다.
함수 | 목적 |
---|---|
문자 배열에 텍스트를 저장하고 문자 배열을 결합하는 기능 등 | |
공백 | 공백 문자 문자열 만들기 |
Celltr | 문자형 배열에서 string 형으로 구성된 셀형 배열 만들기 |
숯 | 문자형 배열 (문자열)로 변환 |
iscellstr | 입력 값이 문자열로 구성된 셀형 배열인지 확인 |
ischar | 항목이 문자형 배열인지 확인 |
스프린트 | 데이터를 문자열로 포맷 |
strcat | 가로로 문자열 연결 |
strjoin | 셀형 배열의 문자열을 단일 문자열로 결합 |
문자열의 일부를 식별하고 부분 문자열을 찾고 바꾸는 기능 | |
ischar | 항목이 문자형 배열인지 확인 |
isletter | 알파벳 문자 인 배열 요소 |
isspace | 공백 문자 인 배열 요소 |
isstrprop | 문자열이 지정된 범주에 속하는지 확인 |
sscanf | 문자열에서 형식화 된 데이터 읽기 |
strfind | 다른 문자열에서 하나의 문자열 찾기 |
strrep | 하위 문자열 찾기 및 바꾸기 |
strsplit | 지정된 구분 기호에서 문자열 분할 |
Strtok | 문자열의 선택된 부분 |
validatestring | 텍스트 문자열의 유효성 확인 |
Symvar | 식에서 기호 변수 결정 |
정규식 | 정규식 일치 (대소 문자 구분) |
정규식 | 정규식 일치 (대소 문자 구분 안 함) |
regexprep | 정규식을 사용하여 문자열 바꾸기 |
regexptranslate | 문자열을 정규식으로 번역 |
문자열 비교를위한 함수 | |
strcmp | 문자열 비교 (대소 문자 구분) |
strcmpi | 문자열 비교 (대소 문자 구분 안 함) |
strncmp | 문자열의 처음 n 개 문자 비교 (대소 문자 구분) |
strncmpi | 문자열의 처음 n 자 비교 (대소 문자 구분 안 함) |
문자열을 대문자 또는 소문자로 변경하고 공백을 만들거나 제거하는 기능 | |
비우기 | 문자열 끝에서 후행 공백 제거 |
strtrim | 문자열에서 선행 및 후행 공백 제거 |
보다 낮은 | 문자열을 소문자로 변환 |
높은 | 문자열을 대문자로 변환 |
Strjust | 문자 배열 양쪽 정렬 |
예
다음 예제는 위에서 언급 한 문자열 함수 중 일부를 보여줍니다.
문자열 서식 지정
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
파일을 실행하면 다음 결과가 표시됩니다.
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
문자열 결합
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
파일을 실행하면 다음 결과가 표시됩니다.
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
문자열 찾기 및 바꾸기
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
students = {'Zara Ali', 'Neha Bhatnagar', ...
'Monica Malik', 'Madhu Gautam', ...
'Madhu Sharma', 'Bhawna Sharma',...
'Nuha Ali', 'Reva Dutta', ...
'Sunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
파일을 실행하면 다음 결과가 표시됩니다.
new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
문자열 비교
스크립트 파일을 생성하고 다음 코드를 입력하십시오.
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
파일을 실행하면 다음 결과가 표시됩니다.
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal