元胞数组的一个常见用途是将多个字符串存储在同一个变量中。通过让每一行都是一个字符串,也可以将多个字符串存储在一个racter矩阵中。然而,这引入了所有字符串必须具有相等长度的问题。因此,建议使用元胞数组来存储多个字符串。对于操作需要字符矩阵表示的情况,有几个函数可以将字符串的元胞数组转换为字符数组并返回。char
和strvcat
将元胞数组转换为字符数组(详见连接字符串),而函数cellstr
将字符数组转换为字符串的元胞数组:
a=[“你好”;“世界”];c=数组str(a)⇒ c={[1,1]=你好[2,1]=世界}
cstr =
cellstr (strmat)
¶从字符串数组的元素创建新的元胞数组对象strmat.
每行strmat成为的元素cstr。在转换之前,将删除一行中的任何尾部空格。
要从cellstr转换回字符数组,请使用char
.
使用元胞数组存储多个字符串的另一个优点是Octaves中包含的大多数字符串操作函数都支持这种表示。例如,可以使用字符串比较函数
作用如果此函数的一个参数是字符串,而另一个是字符串的元胞数组,则会将元胞数组的每个元素与字符串参数进行比较:
c={“你好”,“世界”};strcmp(“你好”,c)⇒ ans=1 0
以下字符串函数支持字符串的元胞数组:char
, strvcat
, 字符串连接函数
详见连接字符串), 字符串比较函数
, strncmp
, strcmpi
,strncmpi
详见在字符串中搜索), str2双
,deblank
, strtrim
, strtrunc
, strfind
,strmatch
, 正则表达式
, regexpi
详见字符串操作和str2双
详见转换字符串).
函数iscellstr
可用于测试对象是否为字符串数组。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号