【问题标题】:matlab: find the index of rows from the first matching column valuematlab:从第一个匹配的列值中查找行的索引
【发布时间】:2015-03-12 01:44:48
【问题描述】:

假设我有一个矩阵,

>> m = magic(3)

m =

     8     1     6
     3     5     7
     4     9     2

假设我有一个向量,其中包含列的第一个元素的子集,

>> v = [3 4]

v =

     3     4

有没有什么函数可以用来从列的第一个元素中找到行的索引?我的意思--

>> rows = row_index_from_col(m, 1, v)

rows =

      2     3

??

如果没有,最好的方法是什么?

【问题讨论】:

  • 很好地使用ismember! :) 我唯一的建议是让i 成为一个矩阵,就像I=[i',i',i'] 一样。这样你就可以使用I(ismember(m,v)),你可以同时使用m中的任何元素。
  • find(any(bsxfun(@eq,m(:,1),v),2))find(ismember(m(:,1),v))?
  • @Divakar 这太酷了!!!
  • @ramgorur 我认为您可以编辑已删除的答案并在此处添加此代码。

标签: matlab


【解决方案1】:

看来我明白了--

m = magic(3)
v = [3 4]
[~,c] = size(m)
i = 1:c
i(ismember(m(:,1),v))

可能有更好的方法,我不确定。

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2018-05-20
    相关资源
    最近更新 更多