查看: 138|回复: 4|关注: 0

[已答复] 在cell里查找字符位置

[复制链接]

新手

18 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
发表于 2019-10-20 11:21:48 | 显示全部楼层 |阅读模式
x={['N1'];['N2'];['N3'];['W'];['Rem'];['N2'];['N3'];['W'];['Rem'];}

求助各位前辈,我想在这个元胞里查找N1,N2,N3,W,Rem的位置,我用了几个函数( find(cellfun(@(x) ismember('N1',x),x));)都不行,不知道该如何做,谢谢大家!
捕获.JPG

MATLAB 基础讨论
版块优秀回答者

中级

1254 麦片

财富积分


5001500


0

主题

1723

帖子

253

最佳答案
  • 关注者: 42
发表于 2019-10-20 14:44:06 | 显示全部楼层
for循环结合if语句暴力求解!

例如这样:

x={['N1'];['N2'];['N3'];['W'];['Rem'];['N2'];['N3'];['W'];['Rem'];};

kk=1;
for ii=1:length(x)
    if strcmp(x{ii},'N2')
        NumN1(kk)=ii;
        kk=kk+1;
    end
end

新手

18 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-10-20 14:53:26 | 显示全部楼层
WarnerChang 发表于 2019-10-20 14:44
for循环结合if语句暴力求解!

例如这样:

感谢回答,:lol简单粗暴!
我找到了这个也可以解决   
string1 = 'N1';
    fun = @(x)findstr(string1,char(x));
    result = cellfun(fun,stage,'un',0);
    [row1,col1] = find(~cellfun(@isempty,result));

新手

18 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-10-20 14:54:50 | 显示全部楼层
WarnerChang 发表于 2019-10-20 14:44
for循环结合if语句暴力求解!

例如这样:

如果我想找到  不是‘’W的第一个位置,这个应该怎么写呢?

MATLAB 基础讨论
版块优秀回答者

入门

120 麦片

财富积分


50500


0

主题

108

帖子

25

最佳答案
  • 关注者: 2
发表于 2019-10-20 15:43:34 | 显示全部楼层
本帖最后由 alvinlau 于 2019-10-20 15:45 编辑

哪那么复杂…直接ismember(x,'W')就是了…
search.PNG
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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