PSYCHTOOLBOX工具箱及MATLAB编程实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 字符型

MATLAB中的字符串为Unicode字符数组,即每个字符都有对应的一个数值,定义字符串只需将字符内容置于单引号之内即可,例如

>> school='Soochow University'↙
school =
Soochow University
>> whos school↙
Name       Size          Bytes  Class   Attributes
school     1x18            36  char

变量school中包含18个字符(空格计在内),类型为字符型(char)

函数ischar可以判断某变量是否为字符型,可以使用函数strcat和strvcat进行字符串的横向和纵向拼接,char函数也可以进行纵向拼接,例如

>> s1=strcat('Hello', 'everyone')↙
s1 =
Helloeveryone
>> s2=strvcat('Hello', 'everyone')↙
s2 =
Hello
everyone
>> s3=char('Hello', 'everyone')↙
s3 =
Hello
everyone
>> whos s1 s2 s3↙
Name     Size          Bytes  Class   Attributes
s1       1x11            22  char
s2       2x8             24  char
s3       2x8             24  char

可以看出函数strvcat和char会在较短字符串后添加空格,以使每个字符串等长,strcat函数在横向拼接时会忽略字符串末尾的空格,例如

>> strcat('Hello  ', 'everyone')↙
ans =
Helloeveryone

避免这种情况的一种简便方法就是使用拼接运算符[]进行横向拼接,但在使用其进行纵向拼接时要确保每个字符的长度相同,例如

>> s1=['Hello  ' 'everyone']↙
s1 =
Hello  everyone
>> s2=['Hello ';'everyone']↙
s2 =
Hello
everyone

char函数可以将ASCII码转换为对应的字符,例如

>> char(32:127)↙
    ans =
     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
ijklmnopqrstuvwxyz{|}~