关于字符串数组与cell数组

在matlab中,如果想表达一组字符串,不能定义如下的字符串数组:

Str=[‘字符串1’,’字符串2’]

因为这实际会被链接成为一个字符串,如显示Str(1)的结果为’字符串1字符串2’。

一个办法是改变为字符串列数组:

Str=[‘字符串1’;’字符串2’]

但matlab的矩阵要求,每行的字符串长度必须必须相等,所以如下字符串是不合法的:

Str=[‘字符串长度1’;’字符串’]

因此,可以改变为cell数组(异质数组),如下(行或者列均可):

Str={‘字符串长度1’,’字符串’}或者字符串长度1’;’字符串’}

但是要注意,由于cell数组或者矩阵的每个元素可以是不同类型的,因此,对一般矩阵的运算有时不能简单地用于cell数组中,如可对数组做如下的逐个叠加运算:

Str=[];

for i=1:5

  str=[str,;‘aa ‘];

end

运算结果为:[‘aa ’; ‘aa ’; ‘aa ’; ‘aa ’; ‘aa ’],实现了循环增加字符串行的功能

但对cell数组类似操作试图实现循环增加字符串元素个数:

str={}

for i=1:5

  str={str,’aa ‘};

end

其结果只会是一个1行2列的cell数组,第一列是另一个cell数组,第二列才是字符串’aa ‘,从而形成第一个元素是一个嵌套的cell数组的情况,这是因为cell数组的元素可以是不同类型的另一个cell数组造成的。而要实现上述目的,必须写如下代码:

str={}

for i=1:5

  str={str{1,:},’aa ‘};

end

这样结果就为:{‘aa ’,’aa ‘,’aa ’,’aa ’,’aa ‘,’aa’}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值