ppthelion 发表于 2010-10-21 10:52

元胞数组变为字符串数组

如何将元胞数组变为字符串数组啊:
我有一个元胞数组stause :1*386cell,每个cell里面是类似于字符串 ‘ALBH’ ’BLHC‘....等等
因为要在cell里面寻找字符串对应的下标,如寻找BLHC 其在stause cell里面对应的下标为2,而find 函数不能对字符串进行操作,故怎样才能将stause变为字符串数组,如,stause =['ALBH';'BLHC'...],谢谢各位帮忙

ChaChing 发表于 2010-10-21 11:17

help char ???

ppthelion 发表于 2010-10-21 13:45

回复 ChaChing 的帖子

谢谢教授,但是char的结果是字符,而非字符串,如tt =char(stause);tt(1) =A,而我想要的结果是tt(1) = 'ALBH'

rocwoods 发表于 2010-10-21 13:58


>> A = {'asdf';'surf'};
find(strcmp(A,'surf'))

ans =

   2

ChaChing 发表于 2010-10-22 00:09

回复 ppthelion 的帖子

抱歉, 没注意到!
原以为LZ使用头一字元即可完成所需!

zhouyang664 发表于 2010-10-23 19:12

本帖最后由 zhouyang664 于 2010-10-23 19:16 编辑

假如你的cell中的每个元素都含有相同个数的字符就好说!
a{1}='abc';
a{2}='bcd';
a{3}='cde';
d=reshape(,[],3)

d =

abc
bcd
cde

class(d)

ans =

char

楼主想要的是这个效果吗?

再补充一下,这个可以处理不同长度的cell元素:
>> a{1}='abcdefg';
>> a{2}='bcd';
>> a{3}='cdefg';
>> d=cellfun(@char,a,'UniformOutput',false)
d =
    'abcdefg'    'bcd'    'cdefg'
e=char(d)
>> e =
abcdefg
bcd   
cdefg
>> class(e)
ans =
char
>>

ppthelion 发表于 2010-11-2 10:23

回复 zhouyang664 的帖子

呵呵,谢谢,回答的详细,扩展很丰富,非常感谢

qibbxxt 发表于 2010-11-2 15:56

本帖最后由 qibbxxt 于 2010-11-2 15:56 编辑

不知道strfind
可以不 cstr = {'How much wood would a woodchuck chuck';
      'if a woodchuck could chuck wood?'};

idx = strfind(cstr, 'wood');

idx{:,:}
ans =
    10    23
ans =
   6    28
页: [1]
查看完整版本: 元胞数组变为字符串数组