声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2362|回复: 7

[综合讨论] 元胞数组变为字符串数组

[复制链接]
发表于 2010-10-21 10:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2010-10-21 11:17 | 显示全部楼层
help char ???
 楼主| 发表于 2010-10-21 13:45 | 显示全部楼层
回复 ChaChing 的帖子

谢谢教授,但是char的结果是字符,而非字符串,如tt =char(stause);tt(1) =A,而我想要的结果是tt(1) = 'ALBH'
发表于 2010-10-21 13:58 | 显示全部楼层

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

  3. ans =

  4.      2
复制代码

评分

1

查看全部评分

发表于 2010-10-22 00:09 | 显示全部楼层
回复 ppthelion 的帖子

抱歉, 没注意到!
原以为LZ使用头一字元即可完成所需!
发表于 2010-10-23 19:12 | 显示全部楼层
本帖最后由 zhouyang664 于 2010-10-23 19:16 编辑

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

评分

1

查看全部评分

 楼主| 发表于 2010-11-2 10:23 | 显示全部楼层
回复 zhouyang664 的帖子

呵呵,谢谢,回答的详细,扩展很丰富,非常感谢
发表于 2010-11-2 15:56 | 显示全部楼层
本帖最后由 qibbxxt 于 2010-11-2 15:56 编辑

不知道
  1. strfind
复制代码

可以不
  1. cstr = {'How much wood would a woodchuck chuck';
  2.         'if a woodchuck could chuck wood?'};

  3. idx = strfind(cstr, 'wood');

  4. idx{:,:}
  5. ans =
  6.     10    23
  7. ans =
  8.      6    28
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 23:37 , Processed in 0.064725 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表