matlab 字符串处理函数
% blanks(n) 创建有n个空格组成的字符串 % deblank(str) 裁切字符串的尾部空格 % strtrim(str) 裁切字符串的开头和尾部的空格,制表,回车符 % lower(str) 将字符串中的字母转换成小写 % upper(str) 将字符串中的字母转换成大写 % sort(str) 按照字符的ASCII值对字符串排序 % num2str 将数字转换为数字字符串 % str2num 将数字字符串转换为数字 % mat2str 将数组转换成字符串 % int2str 把数值数组转换为整数数字组成的字符数组 ### MATLAB 字符串处理函数详解 #### 一、概述 MATLAB 提供了一系列强大的字符串处理功能,这些功能可以帮助用户高效地处理文本数据。本篇内容将详细介绍几个常用的字符串处理函数,包括创建特定形式的字符串、字符串格式化、大小写转换、排序以及字符串之间的转换等。 #### 二、创建和格式化字符串 ##### 1. **blanks(n)** - **功能**:创建一个由`n`个空格组成的字符串。 - **示例**:`blanks(5)` 返回 `" "`。 ##### 2. **deblank(str)** - **功能**:删除字符串`str`尾部的所有空格。 - **示例**:如果 `str = "hello world "`,那么 `deblank(str)` 返回 `"hello world"`。 ##### 3. **strtrim(str)** - **功能**:删除字符串`str`头部和尾部的所有空白字符(包括空格、制表符、回车符)。 - **示例**:如果 `str = " hello\tworld\n "`,那么 `strtrim(str)` 返回 `"hello\tworld"`。 #### 三、大小写转换 ##### 1. **lower(str)** - **功能**:将字符串`str`中的所有字母转换为小写。 - **示例**:如果 `str = "Hello World"`,那么 `lower(str)` 返回 `"hello world"`。 ##### 2. **upper(str)** - **功能**:将字符串`str`中的所有字母转换为大写。 - **示例**:如果 `str = "Hello World"`,那么 `upper(str)` 返回 `"HELLO WORLD"`。 #### 四、排序 ##### 1. **sort(str)** - **功能**:根据字符的ASCII值对字符串`str`中的字符进行排序。 - **示例**:如果 `str = "cba"`,那么 `sort(str)` 返回 `"abc"`。 #### 五、数字与字符串之间的转换 ##### 1. **num2str** - **功能**:将数字转换为相应的数字字符串。 - **示例**:如果 `x = 123`,那么 `num2str(x)` 返回 `"123"`。 ##### 2. **str2num** - **功能**:将数字字符串转换为相应的数字。 - **示例**:如果 `str = "123"`,那么 `str2num(str)` 返回 `123`。 ##### 3. **mat2str** - **功能**:将数组转换为字符串表示。 - **示例**:如果 `A = [1 2; 3 4]`,那么 `mat2str(A)` 返回 `"[1 2; 3 4]"`。 ##### 4. **int2str** - **功能**:将数值数组转换为由整数数字组成的字符数组。 - **示例**:如果 `x = [123 456]`,那么 `int2str(x)` 返回 `"123 456"`。 #### 六、字符串连接与分割 ##### 1. **strcat** - **功能**:连接两个字符串,裁切掉每个字符串最右边的空格。 - **示例**:如果 `a = "hello "` 和 `c = "world "`,那么 `strcat(a, c)` 返回 `"helloworld"`。 ##### 2. **strvcat** - **功能**:垂直连接多个字符串,自动补全空格使得长度与最长字符串相同,忽略空字符串。 - **示例**:如果 `a = "a"`、`b = "bb"`、`m = ""`,那么 `strvcat(a, b, m)` 返回 `["a "; "bb "]`。 ##### 3. **char** - **功能**:连接字符串,空字符串会被空格填充。 - **示例**:如果 `a = "a"`、`b = "bb"`、`m = ""`,那么 `char(a, b, m)` 返回 `["a "; "bb "]`。 #### 七、字符串比较与检测 ##### 1. **strcmp** - **功能**:比较两个字符串是否完全相等,区分大小写。 - **示例**:如果 `a = "abc"`、`b = "abc"`,那么 `strcmp(a, b)` 返回 `true`。 ##### 2. **strncmp** - **功能**:比较两个字符串前`n`个字符是否相等,区分大小写。 - **示例**:如果 `a = "abcde"`、`b = "abcf"`,那么 `strncmp(a, b, 3)` 返回 `true`。 ##### 3. **strcmpi** - **功能**:比较两个字符串是否完全相等,不区分大小写。 - **示例**:如果 `a = "AbC"`、`b = "abc"`,那么 `strcmpi(a, b)` 返回 `true`。 ##### 4. **strncmpi** - **功能**:比较两个字符串前`n`个字符是否相等,不区分大小写。 - **示例**:如果 `a = "AbCde"`、`b = "abCf"`,那么 `strncmpi(a, b, 3)` 返回 `true`。 ##### 5. **isletter** - **功能**:检测字符串中每个字符是否属于英文字母。 - **示例**:如果 `a = "dsdsdsd15#"`,那么 `isletter(a)` 返回 `[1 1 1 1 1 1 1 0 0]`。 ##### 6. **isspace** - **功能**:检测字符串中每个字符是否属于格式字符(如空格、回车、制表、换行符等)。 - **示例**:如果 `a = "dsdsdsd15# "`,那么 `isspace(a)` 返回 `[0 0 0 0 0 0 0 0 0 1]`。 ##### 7. **isstrprop** - **功能**:检测字符串中的每个字符是否属于指定的范围,例如数字、字母等。 - **示例**:如果 `a = "123ABCxyz "`,那么 `isstrprop(a, 'alpha')` 返回 `[0 0 0 1 1 1 1 1 1 0]`。 #### 八、字符串替换与查找 ##### 1. **strrep** - **功能**:在字符串中替换指定的子字符串,区分大小写。 - **示例**:如果 `str1 = "Hello world"`、`str2 = "world"`、`str3 = "MATLAB"`,那么 `strrep(str1, str2, str3)` 返回 `"Hello MATLAB"`。 ##### 2. **strfind** - **功能**:在字符串中查找指定模式的出现位置。 - **示例**:如果 `str = "hello world"`、`patten = "or"`, 那么 `strfind(str, patten)` 返回 `[4 8]`。 ##### 3. **findstr** - **功能**:在较长字符串中查找较短字符串出现的位置。 - **示例**:如果 `str1 = "hello world"`、`str2 = "or"`, 那么 `findstr(str1, str2)` 返回 `[4]`。 ##### 4. **strmatch** - **功能**:检查模式字符串是否与另一个字符串最左侧部分匹配。 - **示例**:如果 `patten = "he"`、`str = "hello"`, 那么 `strmatch(patten, str)` 返回 `[1]`。 ##### 5. **strtok** - **功能**:将字符串分割成两部分,第一部分是分割符之前的内容,第二部分是分割符之后的内容。 - **示例**:如果 `mm = "youqwelcome"`、`char = "q"`, 那么 `strtok(mm, char)` 返回 `mm1 = "you"`, `mm2 = "welcome"`。 #### 九、CELL 数组中的字符串比较 - **功能**:比较 CELL 数组中的字符串。 - **示例**:如果 `c = cell(2,1); c{1,1} = "xxx"; c{2,1} = "yyyyyyy";`,那么 `strcmp(c{1,1}, c{2,1})` 返回 `false`。 以上介绍了 MATLAB 中一系列字符串处理函数的使用方法和示例。通过这些函数,可以实现字符串的创建、格式化、转换、比较等多种操作,极大地提高了字符串处理的效率和灵活性。