English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB 문자열

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은 문자열을 생성, 조합, 분석, 비교 및操作하는 데 사용되는 많은 문자열 함수를 제공합니다.

다음 표는 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