7.1 字符串的创建
一个MATLAB字符串是一个char型数组,每个字符占2字节。当字符串被赋予一个变量时,这个变量将被自动创建为字符变量。
7.1.1 创建字符数组
可以用一对单引号来表示字符串,具体示例如下:
也可以用字符串合并函数strcat()来得到一个新的字符串,具体示例如下:
运行结果如下:
注 意
使用strcat()函数在合并字符串时会把字符串结尾的空格删除。要保留这些空格,可以用矩阵合并符“[]”来实现字符串合并,具体示例如下:
运行结果如下:
用户也可以创建二维字符数组,但要注意保证二维字符数组的每行具有相同的长度。如下所示的字符串是合法的,因为它的每行都有6个字符:
上述语句的输出结果如下:
当创建的多个字符串具有不同的长度时,可以在字符串的尾部添加空格来强制实现字符串具有相同的长度。具体示例如下:
运行结果如下:
更简单的方法是利用char()函数来创建字符串。使用char()函数创建字符串数组时,如果字符串不具有相同的长度,则char()函数自动用空格把字符串补足到最长的字符串的长度。具体示例如下:
运行结果如下:
strvcat()函数与char()函数具有类似的功能。strvcat()函数把多个字符串合并为一个字符串数组。当字符串不具有相同的长度时,strvcat()函数自动在尾部添加空格补足到最长的字符串的长度。具体示例如下:
运行结果如下:
把上述字符数组转换成字符串单元数组的代码如下所示:
运行结果如下:
注 意
cellstr()函数可以把字符串尾部的空格删除。可以查看celldata的第1个字符串长度,具体示例如下:
运行结果如下:
可以使用char()函数把一个字符串单元数组转换成一个字符数组,具体示例如下:
运行结果如下:
使用如下所示的代码可以得到其第1个字符串的长度:
运行结果如下:
7.1.2 创建二维字符数组
在 MATLAB 中还可以创建二维字符数组,但一个数组中每行的长度都必须相等。如果其中的一行比其他行短,那么这个字符数据将无效,并产生一个错误。例如,如下所示的语句是非法的,因为两行的长度不同:
创建二维字符数组最简单的方法是使用 char()函数,使用该函数可以自动寻找所有字符串中最长的那一个。
具体示例如下:
可以使用deblank()函数删除多余的空格。例如,如下所示的语句用于删除name数组中第2行多余的空格,并将运行结果与原来的进行比较: