matlab:从第一个匹配的列值中查找行的索引

matlab:从第一个匹配的列值中查找行的索引,matlab,Matlab,假设我有一个矩阵 >> m = magic(3) m = 8 1 6 3 5 7 4 9 2 假设我有一个向量,包含列的第一个元素的子集 >> v = [3 4] v = 3 4 是否有任何函数可用于从列的第一个元素查找行的索引?我的意思是-- ? 如果没有,那么最好的方法是什么?看起来我知道了-- 可能有更好的方法,我不确定。很好地使用了ismember!:)我唯

假设我有一个矩阵

>> m = magic(3)

m =

     8     1     6
     3     5     7
     4     9     2
假设我有一个向量,包含列的第一个元素的子集

>> v = [3 4]

v =

     3     4
是否有任何函数可用于从列的第一个元素查找行的索引?我的意思是--

?

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

看起来我知道了--


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

很好地使用了
ismember
!:)我唯一的建议是把
i
做成一个矩阵,如
i=[i',i',i']
。这样你就可以使用
I(ismember(m,v))
,你可以同时使用
m
中的任何元素。
find(any(any)(bsxfun(@eq,m(:,1),v),2))
find(ismember(m(:,1),v))
?@Divakar这很酷@ramgorur我想你可以编辑你删除的答案并在那里添加代码。
>> rows = row_index_from_col(m, 1, v)

rows =

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