天天看点

《MATLAB R2012a超级学习手册》一2.4 字符串处理函数

本节书摘来自异步社区《matlab r2012a超级学习手册》一书中的第2章,第2.4节,作者 史洁玉 , 孔玲军,更多章节内容可以访问云栖社区“异步社区”公众号查看

matlab r2012a超级学习手册

matlab能够很好地支持字符串数据,可以用两个不同的方式来表示字符串,即字符数组和字符串单元数组。

通常可以用m×n的字符数组来表示多个字符串,只要这些字符串的长度是一样。当需要保存多个不同长度的字符串时,可以用单元类型来实现。

matlab提供了很多字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。下面介绍如何创建字符串的操作。

1.创建字符数组

可以用一对单引号来表示字符串,例如下面的示例代码。

也可以用字符串合并函数strcat()来得到一个新的字符串,例如下面的示例代码。

上述语句得到输出代码如下。

注意:

函数strcat()在合并字符串的同时会把字符串结尾的空格删除。要保留这些空格,可以用矩阵合并符[]来实现字符串合并,例如下面的示例代码。

利用函数char()来创建字符串。该函数创建字符串数组时,如果字符串不具有相同的长度,则函数char()自动用空格把字符串补足到最长的字符串的长度。例如下面的示例代码。

2.创建字符串单元数组

可以用函数cellstr()来创建字符串单元数组。例如,有一个字符数组如下。

下面语句的功能是把上述字符数组转换成为字符串单元数组,示例代码设置如下。

函数cellstr()已经把字符串尾部的空格截去。例如下列语句可以查看celldata的第一个字符串长度。

可以用函数char()把一个字符串单元数组转换成一个字符数组,示例代码设置如下。

其第一个字符串的长度可以得到如下的代码。

matlab里包括以下几种比较字符串和字符子串的方法。比较两个字符串或者两个字符串的子串是否相同。

比较两个字符串中的单独字符是否相同。

对字符串内的元素进行识别,判定每一个元素是字符还是空白符(包括空格、制表符tab和换行符)。

这些函数对字符数组和字符串数组都适用。

1.字符串比较函数

matlab提供的字符串比较函数如表2-18所示。

《MATLAB R2012a超级学习手册》一2.4 字符串处理函数

例如,有两个字符串如下。

由于这两个字符串不相同,故调用函数strsmp()的结果为0,语句如下。

这两个字符串的前5个字符是相同的,故用函数strncmp()比较它们的前5个字符,会返回1,代码设置如下。

2.用关系运算符比较字符串

可以对字符数组运用matlab7.0的关系运算符,但是要求比较的字符数组具有相同的维数,或者是其中一个是标量。例如,以下代码是用等号运算符(==)来判断两个字符串里哪些字符是相同的。

提示:

也可以用其他关系运算符(>、>=、<、<=、==、!=)来比较两个字符串。

matlab提供的一般字符串查找和替换函数如表2-19所示。

《MATLAB R2012a超级学习手册》一2.4 字符串处理函数

下面例子是实现字符串替换。

下面例子是用于实现字符串查找。

下面例子是用于获得第一个分隔符之前的字符串。

matlab提供的把数值转换为字符串的函数如表2-20所示。

《MATLAB R2012a超级学习手册》一2.4 字符串处理函数

matlab提供的把字符串转换为数值的函数如表2-21所示。

《MATLAB R2012a超级学习手册》一2.4 字符串处理函数

例如,要在命令行中输出一行字符串来显示向量x的最小值,使用代码如下。

其中,函数disp()是在命令行中显示一个字符串。由上述语句得到的结果如下。

继续阅读