如何用matlab找到cell中的某个字母的位置。

例如y=['a','b','c','d','e','f','m']
如何找到‘m'的位置?
我用xid=find(y=='m')
总是提示不对啊,Undefined function 'eq' for input arguments of type 'cell'.
应该怎么改呢?

  一、使用方法:
  用ismember;
name={'Alice','Bob','John','Jenny','Richard'};
[bool,inx]=ismember('Jenny',name);
inx就是你要找的字母的位置

  二、MATLAB的简单介绍:
  MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
  MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-25
不知道是版本问题不。。我的是2012a
>> y=['a','b','c','d','e','f','m']
y =
abcdefm
>> xid=find(y=='m')
xid =
7
没有问题追问

对不起,我的y应该是cell
y={'a','b','c','d','e','f','m'}
这样应该写呢

追答

find函数不适用cell,你自己写一个吧

追问

请问大侠,如何写呢?我是matlab菜鸟啊

追答

写个for循环吧
for i=1:7
if y{i}=='m'
xid=i;
end
end
>> xid

xid =
7

追问

谢谢大侠,如果我想把找到并列出所有m的位置,该如何改呢?
如y={'a','b','m','d','e','f','m'}

我想得到xid=3,7

追答

id=zeros(1,7);
j=1;

for i=1:7
if y{i}=='m'
id(j)=i;
j=j+1;
end
end

>>xid=id(1:j-i)

xid =
3 7

本回答被提问者采纳