使用ismember函数查找多个位置。 (Matlab的)

时间:2013-07-03 11:00:36

标签: arrays matlab vector find

这个问题是关于Matlab函数ismember或替代方法

我有一个包含多次出现的Y的向量X,我想知道Y出现的行,所有这些行不仅仅是一行。这个矢量在我的代码中会大得多,因此任何关于效率/时间节省的建议都会非常受欢迎。

我的代码是:

  

X = [1 1 0 1 1 0 1 0 1]'

     

Y = 0

     

[〜,INDX] = ismember(Y,X, '行')

我得到的输出是:

  

indx =

 8

理想情况下,我希望输出与此类似:

  

indx =

     

[3 6 8]

是否可以使用ismember获取此解决方案,还是应该查看find函数之类的内容?

总是非常感谢你的时间和帮助。

1 个答案:

答案 0 :(得分:0)

要获取所有匹配元素的索引,可以使用find函数。这正是你所描述的。

作为Shai also mentioned in the comments,逻辑索引是您问题的另一个潜在解决方案,根据您计划稍后执行的操作,可能很多更高效。最好熟悉这两种方法。