【问题标题】:Using ismember function to find multiple locations. (Matlab)使用 ismember 函数查找多个位置。 (Matlab)
【发布时间】:2013-07-03 11:00:36
【问题描述】:

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

我有一个向量 X,其中包含多次出现的 Y,我想知道 Y 出现在哪些行中,所有行都不只是一个。这个向量在我的代码中会更大,所以任何关于效率/时间节省的建议都将非常感激。

我的代码如下:

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

Y=0

[~,indx]=ismember(Y,X,'rows')

我得到的输出是:

索引 =

 8

理想情况下,我希望输出类似于以下内容:

索引 =

[3 6 8]

是否可以使用 ismember 获得此解决方案,或者我应该查看类似 find 函数的东西?

一如既往地非常感谢您的时间和帮助。

【问题讨论】:

  • 使用find,或者根据你对indx的使用考虑logical indexing
  • 谢谢 Shai,我会考虑你的建议。
  • find 完全符合您的要求。

标签: arrays matlab vector find


【解决方案1】:

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

作为Shai also mentioned in the comments,逻辑索引是解决您的问题的另一种潜在解决方案,它可能很多更有效,具体取决于您以后打算做什么。最好熟悉这两种方法。

【讨论】:

  • 感谢 Marc 和 Shai,查找功能似乎是可行的方法。
猜你喜欢
  • 1970-01-01
  • 2014-11-13
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多