English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MATLAB에서 문자열을 생성하는 것은 매우 간단합니다. 실제로 많이 사용했습니다. 예를 들어, 명령 프롬프트에서 다음을 입력하면-
my_string = 'oldtoolbag.com'
MATLAB은 위의 명령을 실행하여 다음과 같은 결과를 반환합니다.-
my_string = oldtoolbag.com
MATLAB은 모든 변수를 배열로, 문자열을 문자 배열로 간주합니다. 다음을 사용하여whos명령을 사용하여 위에 생성된 변수를 확인할 수 있습니다.-
whos
MATLAB은 위의 명령을 실행하여 다음과 같은 결과를 반환합니다.-
이름 Size Bytes Class Attributes my_string 1x16 32 char
재미있게도, 숫자 변환 함수를 사용할 수 있습니다.uint8또는uint16문자열의 문자를 숫자 코드로 변환할 수 있습니다.char정수 벡터를 문자로 변환하는 함수-
스크립트 파일을 만들고 다음 코드를 입력하세요-
my_string = 'w3codebox''s com'; str_ascii = uint8(my_string) %8위의 ascii 값 str_back_to_char = char(str_ascii) str_16bit = uint16(my_string) %16위의 ascii 값 str_back_to_char = char(str_16bit)
파일을 실행할 때, 다음과 같은 결과가 표시됩니다-
str_ascii = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com str_16bit = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com
지금까지 논의한 문자열은 일维 문자 배열입니다. 하지만 더 많이 저장해야 합니다. 더 많은 차원의 텍스트 데이터를 프로그램에 저장해야 합니다. 이는 정사각형 문자 배열을 생성하여 이루어집니다.
정사각형 문자 배열을 생성하는 가장 간단한 방법은 필요에 따라 수직이나 수평으로 두 개나 많은 일维 문자 배열을 결합하는 것입니다.
문자열을 수직으로 결합하는 두 가지 방법을 통해 선택할 수 있습니다.-
MATLAB 결합 연산자 [] 사용하여, 세미콜론 (;)으로 각 행을 구분하여, 각 행에 같은 문자 수를 유지하도록 합니다. 길이가 다른 문자열이 있을 때는 필요에 따라 공백 문자를 채우세요.
char 함수 사용. 문자열 길이가 다를 때, char는 짧은 문자열을 결말 공백으로 채우여 모든 행에 같은 문자 수를 유지합니다.
스크립트 파일을 만들고 다음 코드를 입력하세요-
doc_profile = ['Zara Ali ', ... Sr. Surgeon ; ... R N Tagore Cardiology Research Center'] doc_profile = ['Zara Ali', 'Sr. Surgeon', ... doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
파일을 실행할 때, 다음과 같은 결과가 표시됩니다-
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에서의 문자열 함수를 간단히 소개합니다-
기능 | 작용 |
---|---|
문자 배열에 텍스트를 저장하고, 문자 배열을 조합하는 함수 | |
blanks | 공백 문자 문자열을 생성하기 |
cellstr | 문자 배열에서 문자열의 셀 배열을 생성하기 |
char | 문자 배열을 문자열로 변환하기 |
iscellstr | 입력이 문자열의 셀 배열인지 확인하기 |
ischar | 항목이 문자 배열인지 확인하기 |
sprintf | 데이터를 문자열로 형식화하기 |
strcat | 수평으로 문자열을 연결하기 |
strjoin | 셀 배열 내의 문자열을 단일 문자열로 연결하기 |
문자열의 일부를 인식하고 서브 문자열을 찾아내고 대체하는 함수 | |
ischar | 항목이 문자 배열인지 확인하기 |
isletter | 문자 배열 요소 |
isspace | 공백 문자의 배열 요소로 사용됨 |
isstrprop | 문자열이 지정된品类에 속하는지 확인하기 |
sscanf | 문자열에서 형식화된 데이터를 읽어들이기 |
strfind | 다른 문자열에서 문자열을 찾아내기 |
strrep | 查找并替换子字符串 |
strsplit | 在指定的分隔符处分割字符串 |
strtok | 字符串的选定部分 |
validatestring | 检查文本字符串的有效性 |
symvar | 确定表达式中的符号变量 |
regexp | 匹配正则表达式(区分大小写) |
regexpi | 匹配正则表达式(不区分大小写) |
regexprep | 使用正则表达式替换字符串 |
regexptranslate | 将字符串转换为正则表达式 |
字符串比较功能 | |
strcmp | 比较字符串(区分大小写) |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前n个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
用于将字符串更改为大写或小写,创建或删除空格的函数 | |
deblank | 从字符串末尾去除尾随空白 |
strtrim | 删除字符串的前导和尾随空格 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
strjust | 对齐字符数组 |
以下示例说明了上述一些字符串函数-
스크립트 파일을 만들고 다음 코드를 입력하세요-
A = pi*1000*ones(1,5); sprintf(' %f \ %.2f \ %+.2f \ %12.2f \ %012.2f \ ', A)
파일을 실행할 때, 다음과 같은 결과가 표시됩니다-
ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59
스크립트 파일을 만들고 다음 코드를 입력하세요-
%字符串单元格数组 str_array = {'red','blue','green', 'yellow', 'orange'}; %将单元格数组中的字符串合并为单个字符串 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, Rev Dutta, ... Sunaina Ali, Sofia Kabir; % strrep 함수는 서브 문자열을 검색하고 대체합니다. new_student = strrep(students(8), 'Reva', 'Poulomi') % 이름 출력 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