关于字符串矩阵,一直是一个令我十分困扰的问题。今天看了看cellstr的help文档,终于弄清其中的意义。
关于x=[s1,s2,...,sn]的理解
该表达式把字符串s1,s2,...,sn的字符连接起来组成了一个字符串x,基本单元是character,例如:
关于表达式x=[s11,s12,...,s1n;s21,s22,...s2n,...;sm1,...smn]的理解
这种表达式不是随便都成立的,要求是每一行(由分号;隔断,类似于数据的矩阵表达式)的字符(character)数都相等,否则报错。这样形成的x是个char array。每一行都是一个字符串,但是基本的单元仍是character。例如:
那么怎样使基本元是string呢?(即z(1)的值是个字符串,如‘aa’),实现这种功能的数据类型是cell,由{}创建,由x{index,index}引用,类似于array,但感觉上比array的限制少些。例如:
cellstr函数的功能就是将一个char array转化成一个cell ,从而能在其中索引一个字符串,例如:
一点感想
[ ]作用于字符串的效果仿佛是将字符串连接起来,表达式的值的基本单元认识character。而cell可以完成对一个字符串的索引。其实cell可以将不同类型(例如double和char)的数据组合起来形成cell进行索引。