cell数组变为字符串_matlab里cell和char,字符串与字符数组 [转]

用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。

我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。

就像没有str2cell一样。

实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组

函数语法为c = cellstr(S)

它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格

正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)

很多人分不开字符数组和字符串什么区别。

>>str1='i love matlab' % 这是一个字符数组,也是一个字符串

str1 =

i love matlab

>>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格

str2 =

I

am

a

boy

由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。

>>char('i','love','matlab') % char函数会自动补充空格

ans =

i

love

matlab

>>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。

ans =

'i' 'love' 'matlab'

下面来看几个例子:

例1:创建一个字符串数组,记住补空格

>>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)

S =

abc

defg

hi

>>whos S

Name Size Bytes Class

S 3x4 24 char array

例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :

>>c = cellstr(S)

c =

'abc'

'defg'

'hi'

>>whos c

Name Size Bytes Class

c 3x1 294 cell array

例3:再使用char函数将cell字符串转换为字符数组

>>char(c)

ans =

abc

defg

hi

>> whos ans

Name Size Bytes Class Attributes

ans 3x4 24 char

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值